app/Http/Middleware/Authenticate.php
<?php
// A middleware receives the request and a $next callback.
class Authenticate
{
public function handle($request, Closure $next)
{
if (! $request->user()) {
return redirect('/login'); // stop here
}
return $next($request); // pass to the next layer
}
}
class LogRequest
{
public function handle($request, Closure $next)
{
$response = $next($request); // let the route run first
Log::info($request->path()); // ...then act on the way out
return $response;
}
}
// Registered per route:
Route::get('/dashboard', [DashboardController::class, 'index'])
->middleware([Authenticate::class, 'log']);
Output
Request enters the pipeline → passes each middleware → hits the route.
Dashboard for danny [logged: /dashboard]