Мне не понятно, что вам нужно, хватит ли следующего?
public function filterByProvince(Request $request)
{
$count = array();
$province = [];
foreach ($request->except(['_token']) as $key => $value) {
$province[$key] = $key;
}
$projects = [];
foreach ($province as $prov){
$result = DB::table('places')
->join('projects', function ($join) use ($prov) {
$join->on('places.id', '=', 'projects.place_id')
->where('places.province', '=', $prov);
})->get();
$projects[] = $result;
$count[$prov] = count($result);
}
return view('admin.projects.province', compact(['projects', 'count']));
}