rest_paginate( ProductIndexResource::collection( ProductRepository::make($request) ->applyBasicQueries() ->applyFilters() ->applySorting() ->simplePaginate() ) ); } /** * Products (show) */ public function show(Product $product): JsonResponse { $product->load([ 'channels:id,name', 'properties', 'media' => function ($query) { $query->orderBy('order_column', 'asc'); }, 'variations' => [ 'media', 'properties', ], 'reviews', 'categories:id,name', ]); return response()->rest(new ProductShowResource($product)); } }