$utmParameters */ public static function execute(array $data, array $utmParameters = []): User { $user = DB::transaction(function () use ($data, $utmParameters): User { $isInviteRegistration = data_get($data, 'is_invite', false); $account = Account::create([ 'name' => data_get($data, 'name')."'s Account", 'billing_email' => data_get($data, 'email'), 'plan_id' => Plan::where('slug', Slug::Starter)->value('id'), 'trial_ends_at' => now()->addDays(config('cashier.trial_days')), ]); $user = User::create(array_merge([ 'name' => data_get($data, 'name'), 'email' => data_get($data, 'email'), 'password' => data_get($data, 'password'), 'google_id' => data_get($data, 'google_id'), 'github_id' => data_get($data, 'github_id'), 'email_verified_at' => data_get($data, 'email_verified_at', $isInviteRegistration ? now() : null), 'account_id' => $account->id, 'registration_ip' => data_get($data, 'registration_ip'), ], $utmParameters)); $account->update(['owner_id' => $user->id]); return $user; }); if (PostHogService::isEnabled()) { SyncUser::dispatch((string) $user->id); } return $user; } }