withRouting( web: __DIR__.'/../routes/web.php', commands: __DIR__.'/../routes/console.php', health: '/up', ) ->withMiddleware(function (Middleware $middleware): void { $middleware->web(append: [ \App\Http\Middleware\HandleInertiaRequests::class, \Illuminate\Http\Middleware\AddLinkHeadersForPreloadedAssets::class, \App\Http\Middleware\EnforcePasswordChange::class, ]); $middleware->alias([ 'role' => \Spatie\Permission\Middleware\RoleMiddleware::class, 'permission' => \Spatie\Permission\Middleware\PermissionMiddleware::class, 'role_or_permission' => \Spatie\Permission\Middleware\RoleOrPermissionMiddleware::class, ]); }) ->withExceptions(function (Exceptions $exceptions): void { $exceptions->render(function (\Spatie\Permission\Exceptions\UnauthorizedException $e, $request) { if (app()->environment('testing')) { return null; } if ($request->expectsJson() || $request->header('X-Inertia')) { return back()->with('error', 'User does not have the right permissions.'); } return redirect()->route('dashboard')->with('error', 'User does not have the right permissions.'); }); $exceptions->render(function (\Illuminate\Auth\Access\AuthorizationException $e, $request) { if (app()->environment('testing')) { return null; } if ($request->expectsJson() || $request->header('X-Inertia')) { return back()->with('error', $e->getMessage() ?: 'User does not have the right permissions.'); } return redirect()->route('dashboard')->with('error', $e->getMessage() ?: 'User does not have the right permissions.'); }); $exceptions->render(function (\Symfony\Component\HttpKernel\Exception\HttpException $e, $request) { if ($e->getStatusCode() === 403) { if (app()->environment('testing')) { return null; } if ($request->expectsJson() || $request->header('X-Inertia')) { return back()->with('error', $e->getMessage() ?: 'User does not have the right permissions.'); } return redirect()->route('dashboard')->with('error', $e->getMessage() ?: 'User does not have the right permissions.'); } }); })->create();