createUser($provider, $providerId, $email, $name); } $user->forceFill([ 'oauth_provider' => $provider, 'oauth_provider_id' => $providerId, ]); // Noch nicht verifiziert (offener Selbst-Registrierer): der Provider // bestätigt die E-Mail → Onboarding abschließen (aktiv + customer). if ($user->email_verified_at === null) { $user->forceFill([ 'email_verified_at' => now(), 'is_active' => true, ])->save(); if ($user->roles()->doesntExist()) { $this->roleSync->assignRoleAndSyncPermissions($user, 'customer'); } return $user; } // Bereits verifiziert: nur Provider verknüpfen. is_active bleibt // unangetastet (deaktivierte Accounts werden nicht reaktiviert). $user->save(); return $user; } private function createUser(string $provider, string $providerId, string $email, ?string $name): User { return $this->accountProvisioner->provisionVerifiedCustomer( $email, $name !== null ? trim($name) : '', [ 'oauth_provider' => $provider, 'oauth_provider_id' => $providerId, ], ); } }