with(['category', 'featuredMedia']) ->unless($this->isPreview($request), fn (Builder $q) => $q->published()) ->when($request->filled('category'), fn (Builder $q) => $q ->whereHas('category', fn (Builder $c) => $c ->where('slug->'.app()->getLocale(), $request->string('category')))) ->when($request->boolean('featured'), fn (Builder $q) => $q->where('is_featured', true)) ->orderByDesc('published_at') ->paginate($this->perPage($request)) ->withQueryString(); return PublicPageResource::collection($pages); } public function show(Request $request, string $slug): PublicPageResource { $page = Page::query() ->with(['category', 'featuredMedia']) ->whereSlug($slug) ->unless($this->isPreview($request), fn (Builder $q) => $q->published()) ->firstOrFail(); return PublicPageResource::make($page); } }