status; if ($statusFilter) { $query->where('status', DocumentStatusEnum::make($statusFilter, 'name')->value); } $hasNoLinkFilter = request()->boolean('hasNoLink'); $query->when($hasNoLinkFilter, function ($query) { $locale = app()->getLocale(); $query->where(function ($q) use ($locale) { $q->whereNull("issuu_path->$locale") ->whereNull("path->$locale"); }); }); $categoriesFilter = $request->input('categories'); $query->when($categoriesFilter, function ($query, $categoriesFilter) { $categoryIds = collect(explode(',', $categoriesFilter)) ->map(fn($id) => (int) $id) ->filter() ->values(); $query->whereHas('categories', function ($q) use ($categoryIds) { $q->whereIn('document_categories.id', $categoryIds); }); }); $tagsFilter = $request->input('tags'); $query->when($tagsFilter, function ($query, $tagsFilter) { $tagIds = collect(explode(',', $tagsFilter)) ->map(fn($id) => (int) $id) ->filter() ->values(); $query->whereHas('tags', function ($q) use ($tagIds) { $q->whereIn('document_tags.id', $tagIds); }); }); return $query; } }