has('channel_ids')) { $query->whereIn('channel_id', $request->input('channel_ids')); } // Filter by language if provided // Assuming that the Video model has a relationship to Channel // and the Channel model has a 'language' attribute if ($request->has('languages')) { $languages = $request->input('languages'); $query->whereHas('channel', function ($q) use ($languages) { $q->whereIn('language', $languages); }); } if($request->has('start_date') && $request->has('end_date')) { $query->whereBetween('external_date', [$request->input('start_date'), $request->input('end_date')]); } // Retrieve the videos (you can add pagination if desired) $videos = $query->orderBy('external_date', 'desc')->get(); // Return the videos as a JSON response return response()->json($videos); } }