trypost/app/Http/Middleware/App/EnsureAccountReady.php
Paulo Castellano 26c738c0ba fix(billing): require card-backed trial again
Revert the no-card signup trial flow so access depends on a Stripe subscription trial started at checkout, preventing app access before a payment method is collected.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-21 09:49:44 -03:00

37 lines
838 B
PHP

<?php
declare(strict_types=1);
namespace App\Http\Middleware\App;
use App\Models\Account;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class EnsureAccountReady
{
/**
* @param Closure(Request): (Response) $next
*/
public function handle(Request $request, Closure $next): Response
{
$user = $request->user();
if (! $user) {
return $next($request);
}
$account = $user->account;
if (! config('trypost.self_hosted') && (! $account || ! $account->subscribed(Account::SUBSCRIPTION_NAME))) {
return redirect()->route('app.subscribe');
}
if (! $user->workspaces()->exists()) {
return redirect()->route('app.workspaces.create');
}
return $next($request);
}
}