$request->route()
вернет ноль в Global Middlewares .
Добавьте ваше промежуточное ПО в другую группу как
protected $middlewareGroups = [
'web' => [
...
YOUR_MIDDLEWARE::class,
]
]
или добавьте его в $routeMiddleware
.
protected $routeMiddleware = [
...
'your_middleware' => YOUR_MIDDLEWARE::class,
];
и примените его к вашему маршруту,
Route::middleware('your_middleware')->group(function () {
Route::get('/books/science', 'BookController@science')->name('scientific');
});