lotteryAdmin(); $email = is_string($request->validated('email')) ? trim($request->validated('email')) : null; $roleSlugs = array_values(array_unique($request->validated('role_slugs'))); $user = DB::transaction(function () use ($request, $email, $roleSlugs): AdminUser { $created = AdminUser::query()->create([ 'username' => $request->validated('username'), 'name' => $request->validated('nickname'), 'email' => $email, 'password' => $request->validated('password'), 'status' => $request->validated('status', 0), ]); $created->syncRoleSlugsForDefaultSite($roleSlugs); return $created; }); $user->load('roles'); AuditLogger::recordForAdmin( $actor, $request, 'system', 'admin_user.create', 'admin_user', (string) $user->getKey(), null, AdminUserApiPresenter::listItem($user), ); return ApiResponse::success(AdminUserApiPresenter::listItem($user)); } }