hasher->make($data['password']); } $this->connection->beginTransaction(); if (!isset($data['password']) || empty($data['password'])) { $generateResetToken = true; $data['password'] = $this->hasher->make(str_random(30)); } /** @var User $user */ $user = $this->repository->create(array_merge($data, [ 'uuid' => Uuid::uuid4()->toString(), ]), true, true); if (isset($generateResetToken)) { $token = $this->passwordBroker->createToken($user); } $this->connection->commit(); $user->notify(new AccountCreated($user, $token ?? null)); Activity::event('user:user.create') ->subject($user) ->property([ 'email' => $user->email, 'username' => $user->username, 'admin' => $user->root_admin, ]) ->log(); return $user; } }