environment(['local', 'testing']) && ! User::query()->where('email', $email)->exists() && (trim($password) === '' || $password === 'relais-sms')) { throw new RuntimeException('Definissez un mot de passe administrateur personnel dans RELAIS_SMS_ADMIN_PASSWORD avant de creer le compte hors developpement.'); } $settings = collect(config('relais_sms.default_settings')) ->map(fn (mixed $value, string $key): array => [ 'key' => $key, 'value' => is_bool($value) ? (string) (int) $value : (string) $value, 'type' => match (true) { is_bool($value) => 'boolean', is_int($value) => 'integer', default => 'string', }, ]) ->values() ->all(); AppSetting::upsert($settings, ['key'], ['value', 'type']); User::query()->firstOrCreate([ 'email' => $email, ], [ 'name' => env('RELAIS_SMS_ADMIN_NAME', 'Administrateur RelaisSMS'), 'password' => Hash::make($password), ]); } }