Je base controller class ( parent die je extend ) maakt geen gebruik van de Request class
Dus in je Controller
class zou je use Illuminate\Http\Request;
moeten toevoegen
P.s. uit nieuwsgierigheid ... Waarom gebruik je een Request voor de index functie?
Nog even wat overige dingen die eventueel verbeterd kunnen worden :
$records = Record::with('genre')
->where('artist', 'like', $artist_title)
->where('genre_id', 'like', $genre_id)
Kan ook naar
$records = Record::with('genre')
->where(function($query) {
$query->where('artist', 'like', '%'. $request->input('artist').'%');
$query->where('genre_id', 'like', '%'.$request->input('genre_id').'%' ?? '%');
});
Laravel maakt gebruikt van de except()
functie om properties te negeren die je niet wilt gebruiken in je view
unset($item->created_at, $item->updated_at, $item->records_count);
Kan ook naar
$item->except(['created_at', 'updated_at', 'records_count']);
En voor de netheid kan je de resultaten gewoon in je view returnen
return view('shop.index', $result);
naar
//Voor test resultaten
//Json::dump([$genres, $records]);
return view('shop.index', compact('genres', 'records'));