/**
* Execute the console command.
*
* @throws \RuntimeException
* @fires UserWasCreated
*/
public function handle()
{
$arguments = $this->argument();
$send_email = !$this->option('no-email');
$password_generated = false;
if (!$arguments['password']) {
$arguments['password'] = str_random(15);
$password_generated = true;
}
$validator = Validator::make($arguments, ['name' => 'required|max:255', 'email' => 'required|email|max:255|unique:users,email', 'password' => 'required|min:6']);
if (!$validator->passes()) {
throw new RuntimeException($validator->errors()->first());
}
$user = $this->repository->create($arguments);
$message = 'The user has been created';
if ($send_email) {
$message = 'The user has been created and their account details have been emailed to ' . $user->email;
event(new UserWasCreated($user, $arguments['password']));
} elseif ($password_generated) {
$message .= ', however you elected to not email the account details to them. ';
$message .= 'Their password is ' . $arguments['password'];
}
$this->info($message);
}