I\'m a little stuck on something that usually is quite straight forward. I need to sort records from a hasMany relationship into a custom order based on a certain value and an \
The usort equivalent for Collection is the sort() method. It takes a callback as a parameter and returns the sorted collection.
So in your case, the solution is:
$go = $go->sort(function ($a, $b) use ($order) {
$pos_a = array_search($a->colour, $order);
$pos_b = array_search($b->colour, $order);
return $pos_a - $pos_b;
});