configureRateLimiting(); $this->routes(function () { // 1. Agency API — domain riêng → chỉ client.php Route::domain(config('app.api_agency_url')) ->middleware(['api', 'json.response']) ->namespace($this->namespace) ->group(base_path('routes/client.php')); // 2. System API — bind về APP_URL Route::domain(config('app.url')) ->prefix('api') ->middleware(['api', 'json.response']) ->namespace($this->namespace) ->group(base_path('routes/api.php')); // 3. Admin Backend routes Route::domain(config('app.url')) ->middleware('web') ->namespace($this->namespace) ->group(base_path('routes/admin.php')); // 4. Web routes Route::domain(config('app.url')) ->middleware('web') ->namespace($this->namespace) ->group(base_path('routes/web.php')); }); } /** * Configure the rate limiters for the application. * * @return void */ protected function configureRateLimiting() { RateLimiter::for('api', function (Request $request) { // Admin SPA makes many parallel requests per page — use a higher limit for authenticated users $limit = $request->user() ? 300 : 60; return Limit::perMinute($limit)->by($request->user()?->id ?: $request->ip()); }); } }