['name' => 'Personal', 'billing' => 'Monthly', 'display_price' => '£1.99 / month', 'price_id' => $paddle['personal_monthly_price_id'], 'activation_limit' => 1], 'personal-annual' => ['name' => 'Personal', 'billing' => 'Annual', 'display_price' => '£14.99 / year', 'price_id' => $paddle['personal_annual_price_id'], 'activation_limit' => 1], 'professional-monthly' => ['name' => 'Professional', 'billing' => 'Monthly', 'display_price' => '£3.99 / month', 'price_id' => $paddle['professional_monthly_price_id'], 'activation_limit' => 3], 'professional-annual' => ['name' => 'Professional', 'billing' => 'Annual', 'display_price' => '£29.99 / year', 'price_id' => $paddle['professional_annual_price_id'], 'activation_limit' => 3], ]; foreach ($plans as $plan) { if (trim((string) $plan['price_id']) === '') { throw new RuntimeException('One or more Paddle price IDs are not configured.'); } } return view('checkout.buy', [ 'plans' => $plans, 'paddleToken' => $token, 'paddleEnvironment' => (string) ($paddle['environment'] ?? 'sandbox'), ]); } }