rest( BrandResource::collection( Brand::query() ->with('media') ->enabled() ->ordered() ->when($request->input('type'), fn ($query, $type) => $query->where('type', $type)) ->get() ) ); } /** * Brands (show) * * @param App\Models\Ecommerce\Product\Brand\Brand $brand */ public function show(Brand $brand): JsonResponse { $brand->load('media'); return response()->rest(new BrandResource($brand)); } /** * Brands (products) */ public function products(BrandProductsRequest $request, Brand $brand): JsonResponse { return response()->rest_paginate( ProductResource::collection( ProductRepository::make($request) ->queryAsFromResource($brand) ->applyBasicQueries() ->applyFilters() ->applySorting() ->simplePaginate() ) ); } }