Having trouble with turbo stream

Real quick, one solution could be to wrap the button in a turbo_frame that gets replaced upon success with basically the same button plus a flash message wrapped in a turbo_stream.replace.

See the solution over in this other thread. Does that work?

But what you’re trying to do looks a lot like what Matt Swanson did in this Twitter thread.