Eloquent часто не лучший выбор для более сложных запросов.
Как упоминали ранее комментаторы, вы могли бы уточнить это, установив свои отношения.
Однако вы должны иметь возможность разбивать результаты построителя запросов с помощью paginate ().
DB::select($query)->paginate(25);
Другой вариант - использовать slice () для коллекции.
$collection = DB::select($query)->get();
$collection->slice(($currentPage-1) * $size, $size);
Тогда вам понадобится, если вам нужен paginator для создания ссылок и т. Д., Вы можете создать paginator вручную.
new LengthAwarePaginator(
$collection,
$total,
$size,
$currentPage
);