whereKey($draw->id)->lockForUpdate()->firstOrFail(); if ($locked->status !== DrawStatus::Cooldown->value) { throw new \RuntimeException('draw_not_in_cooldown'); } if ((int) $locked->settle_version > 0) { throw new \RuntimeException('draw_already_settled'); } $locked->forceFill([ 'status' => DrawStatus::Closed->value, 'cooling_end_time' => null, 'is_reopened' => true, ])->save(); return $locked->refresh(); }); } }