1-й: вы не можете заказать с помощью with
:
Потому что с сделает отдельный запрос, как это:
SELECT * FROM users;
SELECT * FROM roles WHERE id IN (1, 2, 3, 4, whatever...);
2-й: Решение для вашей проблемы является использование join
заявление, чтобы сделать только 1 запрос:
Например:
$order = 'desc';
$products = Product::join('variants', 'variants.product_id', '=', 'products.id')->orderBy('products. price', $order)->select('products.*')->paginate(10);
Надеюсь, это полезно для вас, спасибо