The approach I am currently trying to follow is this :
Create Order model
Order is related to product and participant
I believe product alone is enough for everything needed an enrollment can be a product for instance early bird pass
You can create payment (post to /payment/mbway) or check state ( get to /mbway/status)
For the status given the available endpoints I think I am literally just going to on create set state to pending then when check state function called if state in db is completed then just return that else make request to api to get the current state
The approach I am currently trying to follow is this :