Run the new-flow quote creation inside an ActiveRecord::Base.transaction that is always rolled back at the end. Combined with after-commit job scheduling and stubbing all outbound HTTP, this leaves no trace of duplicate quotes, no background jobs, no mutations in other microservices, and no requests to expensive or rate-limited third parties (e.g. credit bureaus).