withRouting( web: __DIR__.'/../routes/web.php', api: __DIR__.'/../routes/api.php', commands: __DIR__.'/../routes/console.php', health: '/up', ) ->withCommands([ \App\Console\Commands\ImportShippingRates::class, \App\Console\Commands\ImportTrackingData::class, \App\Console\Commands\UpdateExchangeRates::class, \App\Console\Commands\GenerateApiToken::class, \App\Console\Commands\SyncWordPressUsers::class, ]) ->withMiddleware(function (Middleware $middleware): void { // ✅ فعال‌سازی Stateful API برای Sanctum $middleware->statefulApi(); // API با CORS $middleware->api(prepend: \Illuminate\Http\Middleware\HandleCors::class); // گروه web برای Filament و صفحات عادی $middleware->group('web', [ \Illuminate\Cookie\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \Illuminate\Foundation\Http\Middleware\ValidateCsrfToken::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, ]); }) ->withExceptions(function (Exceptions $exceptions): void { // ✅ مهم: به جای redirect به login، JSON برگردان $exceptions->render(function (AuthenticationException $e, Request $request) { if ($request->is('api/*') || $request->expectsJson() || $request->wantsJson()) { return response()->json([ 'success' => false, 'message' => 'Unauthenticated', 'error' => 'توکن نامعتبر است یا منقضی شده است. لطفاً دوباره وارد شوید.', ], 401); } }); })->create();