by($request->ip())->response(function () { return response()->json([ 'success' => false, 'message' => 'Muitas tentativas de login. Tente novamente em 1 minuto.', ], 429); }); }); RateLimiter::for('register', function (Request $request) { return Limit::perHour(10)->by($request->ip())->response(function () { return response()->json([ 'success' => false, 'message' => 'Muitas tentativas de registro. Tente novamente mais tarde.', ], 429); }); }); // Rate limiting para API geral (proteção contra abuso) RateLimiter::for('api', function (Request $request) { return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip()); }); } }