How to achieve 2-step checkout


I’m working on my first project based on Sylius 1.5. I’m having a good developer experience, but documentation becomes a weak point when it comes to customise crucial processes such as checkout (i.e.

I want a 2-step checkout process. In concrete, to merge address and payment steps into one. I’m a bit confused on which spots I have to change to achieve this. State Machines? OrderController?

Could you please give me some hint for this? Or, if it exists, a code sample of something similar.

Thank you in advance.