This commit can be reverted/skipped once we have implemented all the logic and have feature parity with the normal `pay`. It's main purpose is to expose the unfinished functionality to test it, without completely breaking the existing `pay` command.
The actual steps are mocked out, but we can already run through the various phases of a payment, and the modifiers should be called for each state.