limiter = $limiter; } public function handle(Request $request, Closure $next, $maxAttempts = 60, $decayMinutes = 1): Response { $key = $request->ip(); if ($this->limiter->tooManyAttempts($key, $maxAttempts)) { return response()->json([ 'error' => 'Rate limit aşıldı', 'message' => 'Bu endpoint 30 dakikada bir kez çağrılabilir.', 'retry_after' => $this->limiter->availableIn($key) ], 429); } $this->limiter->hit($key, $decayMinutes * 60); return $next($request); } }