$validated */ public function storeAndQueueIntegrations(PreregistrationPage $page, array $validated): Subscriber { $subscriber = $page->subscribers()->create($validated); $page->loadMissing('weeztixConfig', 'mailwizzConfig'); $weeztix = $page->weeztixConfig; try { if ($this->weeztixCanIssueCodes($weeztix)) { IssueWeeztixCouponForSubscriber::dispatch($subscriber)->afterResponse(); } elseif ($page->mailwizzConfig !== null) { SyncSubscriberToMailwizz::dispatch($subscriber->fresh())->afterResponse(); } } catch (Throwable $e) { Log::error('RegisterSubscriberOnPage: could not queue integration jobs', [ 'subscriber_id' => $subscriber->id, 'preregistration_page_id' => $page->id, 'message' => $e->getMessage(), ]); } return $subscriber; } private function weeztixCanIssueCodes(?WeeztixConfig $config): bool { if ($config === null || ! $config->is_connected) { return false; } $company = $config->company_guid; $coupon = $config->coupon_guid; return is_string($company) && $company !== '' && is_string($coupon) && $coupon !== ''; } }