"Success", "status_code" => 200]; * @param ClientContact $contact * @return array{"message": string, "status_code": int} */ public function isEligible(ClientContact $contact): array { } /* Starts the process to create a trial - we create a recurring invoice, which has its next_send_date as now() + trial_duration - we then hit the client API end point to advise the trial payload - we then return the user to either a predefined user endpoint, OR we return the user to the recurring invoice page. * startTrial * * @param array $data{contact_id: int, client_id: int, bundle: \Illuminate\Support\Collection, coupon?: string, } * @return Illuminate\Routing\Redirector */ public function startTrial(array $data): \Illuminate\Routing\Redirector|\Illuminate\Http\RedirectResponse { } /** * calculateUpdatePriceV2 * * Need to change the naming of the method * * @param RecurringInvoice $recurring_invoice - The Current Recurring Invoice for the subscription. * @param Subscription $target - The new target subscription to move to * @return float - the upgrade price */ public function calculateUpgradePriceV2(RecurringInvoice $recurring_invoice, Subscription $target): ?float { return (new UpgradePrice($recurring_invoice, $target))->run(); } }