Check out https://www.driftingruby.com/episodes/realtime-client-updates-from-background-jobs-with-stimulus
It uses a whole combination of things. StimulusJS, ActionCable, ActiveJob, AJAX, etc.
It is strange, I know that you can update a card, but it doesn't go through the 3D Secure 2 steps. I believe you would have to use their payment intents to do that, but that could have its own issues around just updating a card instead of creating a new payment. I'd imagine that they will be updating their APIs to fully support updating cards with checkouts.