withRouting( web: __DIR__.'/../routes/web.php', api: __DIR__.'/../routes/api.php', commands: __DIR__.'/../routes/console.php', health: '/up', ) ->withMiddleware(function (Middleware $middleware) { $middleware->alias([ 'onboarding.complete' => EnsureOnboardingComplete::class, 'onboarding.incomplete' => RedirectIfOnboardingComplete::class, ]); }) ->withExceptions(function (Exceptions $exceptions) { $exceptions->reportable(function (Throwable $e) { $level = match (true) { $e instanceof Error => \App\Enums\LogLevelEnum::CRITICAL, $e instanceof RuntimeException => \App\Enums\LogLevelEnum::ERROR, $e instanceof InvalidArgumentException => \App\Enums\LogLevelEnum::WARNING, default => \App\Enums\LogLevelEnum::ERROR, }; App\Events\ExceptionOccurred::dispatch( $e, $level, $e->getMessage(), [] ); }); })->create();