File: //var/www/html/owlcrm/app/Http/Middleware/CheckSubscription.php
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Cookie;
use Illuminate\Support\Facades\Log;
use Symfony\Component\HttpFoundation\Response;
class CheckSubscription
{
public function handle(Request $request, Closure $next): Response
{
// Check if the user has an active subscription
$user = auth()->user();
$id = $request->route('id'); // Get the 'id' parameter from the route
session(['subscriptionKey' => $id]);
if (!Auth::check()) {
Log::info("User not logged in. Redirecting to register page.");
return redirect()->route('register');
}
// Check if the user has an active subscription
$hasActiveSubscription = $user->subscriptions->where('status', 'active')->count() > 0;
if (!$hasActiveSubscription && !request()->routeIs('subscriptions') && !request()->routeIs('buy.subscription.plan')) {
return redirect()->route('subscriptions');
}
Log::info("Already on the buy-subscription-plan route. Proceeding to next.");
return $next($request);
}
}