*/ public function share(Request $request): array { $hasBilling = Module::has('Billing') && Module::isEnabled('Billing'); $hasInvoicing = Module::has('Invoicing') && Module::isEnabled('Invoicing'); /** @var BillingContract $billing */ $billing = app(BillingContract::class); $currentOrganization = $request->user()?->currentTeam; return array_merge(parent::share($request), [ 'has_billing_extension' => $hasBilling, 'has_invoicing_extension' => $hasInvoicing, 'billing' => $billing !== null && $currentOrganization !== null ? [ 'has_subscription' => $billing->hasSubscription($currentOrganization), 'has_trial' => $billing->hasTrial($currentOrganization), 'trial_until' => $billing->getTrialUntil($currentOrganization)?->toIso8601ZuluString(), 'is_blocked' => $billing->isBlocked($currentOrganization), ] : null, 'flash' => [ 'message' => fn () => $request->session()->get('message'), ], ]); } }