argument('name'); $email = $this->argument('email'); $askForPassword = (bool) $this->option('ask-for-password'); $verifyEmail = (bool) $this->option('verify-email'); if (User::query()->where('email', $email)->where('is_placeholder', '=', false)->exists()) { $this->error('User with email "'.$email.'" already exists.'); return self::FAILURE; } if ($askForPassword) { $outputPassword = false; $password = $this->secret('Enter the password'); } else { $outputPassword = true; $password = bin2hex(random_bytes(16)); } $user = null; DB::transaction(function () use (&$user, $name, $email, $password, $verifyEmail): void { $user = app(UserService::class)->createUser( $name, $email, $password, 'UTC', Weekday::Monday, 'EUR', $verifyEmail ); }); /** @var Organization|null $organization */ $organization = $user->ownedTeams->first(); if ($organization === null) { throw new LogicException('User does not have an organization'); } $this->info('Created user "'.$name.'" ("'.$email.'")'); $this->line('ID: '.$user->getKey()); $this->line('Name: '.$name); $this->line('Email: '.$email); if ($outputPassword) { $this->line('Password: '.$password); } $this->line('Timezone: '.$user->timezone); $this->line('Week start: '.$user->week_start->value); // Organization $this->line('Currency: '.$organization->currency); return self::SUCCESS; } }