Leave Order as Stateful and move StateMachine logic to Cart.
remove doc argument
refactor payment state machine