validated('permission_slugs', []))); $role = DB::transaction(function () use ($request, $permissionSlugs): AdminRole { $role = AdminRole::query()->create([ 'slug' => $request->validated('slug'), 'code' => $request->validated('slug'), 'name' => $request->validated('name'), 'description' => $request->validated('description'), 'status' => $request->validated('status', 1), 'is_system' => false, 'sort_order' => 0, 'scope_type' => AdminRole::SCOPE_SYSTEM, 'owner_agent_id' => null, 'delegated_from_role_id' => null, ]); $role->syncLegacyPermissionSlugs($permissionSlugs); return $role->fresh(); }); AuditLogger::recordForAdmin( $request->lotteryAdmin(), $request, 'system', 'admin_role.create', 'admin_role', (string) $role->id, null, AdminRoleApiPresenter::item($role), ); return ApiResponse::success(AdminRoleApiPresenter::item($role)); } }