Tutorials Courses Interview Prep (100 Q&A) AI Tools (50) Developer Tools (50) Tracks Pricing Plans Blog & Articles Contact Us
Laravel Advanced & Architecture 5-8 Years (Senior) Medium Production Scenario

How do you architect Rate Limiting tiers (e.g. Free, Pro, Enterprise) dynamically in Laravel Routing?

Real-World Scenario / Incident Description

An enterprise developer API needs tiered rate limits: Free (60 req/min), Pro (1,000 req/min), Enterprise (10,000 req/min) based on the user's active subscription plan.

679 views • Updated 1 month ago

Dynamic Rate Limiter in AppServiceProvider

RateLimiter::for('api', function (Request $request) {
    $user = $request->user();
    if (! $user) {
        return Limit::perMinute(30)->by($request->ip());
    }

    return match ($user->subscription_tier) {
        'enterprise' => Limit::perMinute(10000)->by($user->id),
        'pro' => Limit::perMinute(1000)->by($user->id),
        default => Limit::perMinute(60)->by($user->id),
    };
});
Related Concepts: #Rate Limiting #Routing #Security #SaaS