ОК на основе вашего комментария Я обновил свой ответ:
на передней панели меню выбора должно обновить URL-адрес с выбранным элементом меню, вы можете использовать onchange для этого:
<select onchange="location = this.value;">
<option value="">Sort By</option>
<option value="?sortBy=rate" {{ (request('sortBy') == 'rate' ? 'selected=selected' : '') }}>Rate</option>
<option value="?sortBy=popular" {{ (request('sortBy') == 'popular' ? 'selected=selected' : '') }}>Popular</option>
<option value="?sortBy=ohirgi" {{ (request('sortBy') == 'ohirgi' ? 'selected=selected' : '') }}>Ohirgi</option>
<option value="?sortBy=id" {{ (request('sortBy') == 'id' ? 'selected=selected' : '') }}>id</option>
</select>
При выборе добавляется? SortBy = и выбранный параметр к URL-адресу. или? sortBy = rate
напишите свой запрос, но оставьте -> get (), тогда вы можете связать дополнительные параметры по завершении, а затем завершить с помощью -> get () или -> paginate ()
//initial query without terminator
$doctors = Doctor_list::where('speciality_title', 'LIKE', '%'.$key.'%');
//if there is a sort request use it, otherwise use the default sort
switch (request('sortBy')) {
case 'rate':
$doctors->orderby('rate', 'desc');
break;
case 'Popular':
$doctors->orderby('popular', 'asc');
break;
case 'Ohirgi':
$doctors->orderby('ohirgi', 'asc');
break;
default:
$doctors->orderby('id', 'asc');
break;
}
//complete the query and terminate it with paginate or ->get()
$doctors = $doctors->paginate();