filled('categories')) { $query->whereHas('categories', function ($q) use ($request) { $q->whereIn('categories.id', $request->input('categories')); }); } // Фильтрация по промежутку дат if ($request->filled('date_from')) { $query->whereDate('event_date', '>=', $request->input('date_from')); } if ($request->filled('date_to')) { $query->whereDate('event_date', '<=', $request->input('date_to')); } $per_page = $request->filled('per_page') ? $request->input('per_page') : self::PER_PAGE; // Сортируем события: сначала ближайшие $query->orderBy('event_date', 'asc'); // Пагинация по 10 элементов на страницу $gigs = $query->paginate($per_page); return GigResource::collection($gigs); } }