withRouting( health: '/up', ) ->withMiddleware(function (Middleware $middleware) { $middleware->web(append: [ \Uwil\LaravelI18n\Middlewares\ForceLocale::class, \App\Http\Middlewares\HandleInertiaRequests::class, \Illuminate\Http\Middleware\AddLinkHeadersForPreloadedAssets::class, \Uwil\LaravelCommon\Middlewares\SecureHeaders::class, \Uwil\LaravelCommon\Middlewares\TrimStrings::class, \Uwil\LaravelCommon\Middlewares\TrustHosts::class, \Uwil\LaravelCommon\Middlewares\TrustProxies::class, \Uwil\LaravelCommon\Middlewares\VerifyCsrfToken::class, \Uwil\LaravelBackend\Middlewares\LogoutUnpublishedUsers::class, ]); $middleware->group('saml', [ \Uwil\LaravelBackend\Middlewares\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, ]); $middleware->alias([ 'auth' => \Uwil\LaravelBackend\Middlewares\Authenticate::class, 'guest' => \Uwil\LaravelBackend\Middlewares\RedirectIfAuthenticated::class, ]); }) ->withExceptions(function (Exceptions $exceptions) { $exceptions->render(function (HttpException $e, Request $request) { $status = $e->getStatusCode(); return InertiaHelper::errorRender($request, $status); }); /** * Automatic exception capture with Sentry. */ $exceptions->report(function (Throwable $e) { if (app()->bound('sentry')) { app('sentry')->captureException($e); } }); /** * Handling validation errors by excluding sensitive fields from the flash. */ $exceptions->render(function (ValidationException $e, Request $request) { $safeInput = collect($request->all()) ->except(['password', 'password_confirmation', 'current_password']) ->toArray(); return back() ->withInput($safeInput) ->withErrors($e->errors()); }); })->create();