вы можете использовать разнесение, чтобы отделить тему от URL-адреса на 2 темы, в данном случае английский и искусство, после чего вы можете зациклить тему
$subjects = explode(",", $subject);
foreach($subjects as $subject){
$students= Student::with(['subscriptions' => function($query){
$query->orderBy('subscriptions.id','desc');
}])
->whereHas('subjects', function ($query) use ($subject) {
$query->where('name', 'like', "%{$subject}%")->orderByRaw('RAND()');
})->distinct()->get();
}
возможно, я думаю, вы можете поделиться своей схемой базы данных вздесь, чтобы мы могли помочь, вы также можете использовать whereIn для фильтрации данных субъектов