by($request->user()?->id ?: $request->ip()); }); // Rate limiter for document downloads RateLimiter::for('document-downloads', function (Request $request) { // Get rate limits from system settings $settings = app(\App\Services\SettingsService::class); $maxAttempts = $request->user() ? $settings->getDownloadRateLimit(true) : $settings->getDownloadRateLimit(false); return Limit::perHour($maxAttempts) ->by($request->user()?->id ?: $request->ip()) ->response(function () { return response('下載次數已達上限,請稍後再試。', 429); }); }); $this->routes(function () { Route::middleware('api') ->prefix('api') ->group(base_path('routes/api.php')); Route::middleware('web') ->group(base_path('routes/web.php')); }); } }