Добрый день.
$bestProductIds = Order::get()->map->products->flatten()->map->pivot->mapTogroups( function ($pivot) {
return [$pivot->product_id => $pivot->count];
})->map->sum()->sortDesc()->take(3)->keys()->toArray();
$bestProducts = Product::whereIn('id', $bestProductIds)->get();
В $bestProductIds ложатся айди товаров от большего к меньшему, то есть первый тот айдишник где продаж больше.
Выводит 4, 5, 1
Но при выборке $bestProducts через метод whereIn они выводятся не в том же порядке, а в хронологиском, 1, 4, 5
Как их получить в том порядке, который лежит в массиве $bestProductIds?