Middleware filters HTTP requests entering your application. Common uses include authentication, logging, and CORS headers.
php artisan make:middleware EnsureUserIsActive
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class EnsureUserIsActive
{
public function handle(Request $request, Closure $next): Response
{
if ($request->user()?->status !== 'active') {
return redirect('/account-suspended');
}
return $next($request);
}
}
// bootstrap/app.php (Laravel 11+)
->withMiddleware(function (Middleware $middleware) {
$middleware->alias([
'active' => \App\Http\Middleware\EnsureUserIsActive::class,
]);
})
// Single route
Route::get('/profile', [ProfileController::class, 'show'])->middleware('active');
// Group of routes
Route::middleware(['auth', 'active'])->group(function () {
Route::get('/dashboard', [DashboardController::class, 'index']);
});
public function terminate(Request $request, Response $response): void
{
// Runs after the response is sent to the browser
Log::info('Request completed', ['url' => $request->url()]);
}