# Middleware
Estimated time: 6 minutes
Difficulty: Intermediate
Middleware provides request-level control for authentication, localization, permissions, and feature flags.
Common Middleware in LaraCoreKit
web- session, CSRF, cookiesauth- authenticated users onlyverified- email verified onlysetLocale- locale from request/session/userpermission:*- permission-based access control
Global vs Route Middleware
Global middleware
Runs on every request (registered in HTTP kernel).
Route middleware
Applied only on specific routes/groups:
Route::middleware(['auth', 'verified'])->group(function () {
// Protected routes
});
Localization Middleware
Typical behavior:
- Detect locale from route/session/user preference.
- Set
app()->setLocale($locale). - Apply RTL layout if locale is Arabic.
Permission Middleware
Spatie permission middleware controls route-level RBAC:
Route::middleware(['auth', 'permission:blog.create'])->group(function () {
Route::get('/admin/blog/create', ...);
});
Best Practices
- Keep middleware focused and single-purpose.
- Avoid heavy logic in middleware.
- Use route groups for clean middleware stacking.
- Document custom middleware behavior.
Next Steps
Next: Authentication Feature →