For a service-based setup like this, I’d probably wait until the booking
is confirmed before capturing the payment. It should make cancellations
and changes easier to manage. Webhooks for payment status also seem
important so the booking doesn’t rely...