Hi Erich,
the Purchaser is in fact a Saga. Saga's don't always have to be implemented with Axon's Saga support. In some cases, a singleton bean is just enough. In this case, there is not enough "process" to justify a full-blown saga.
However, Saga's are not replayable, as they cause side-effects. So it is important that you never assign such a bean to a replayable cluster.
In your purchaser, you cannot apply events. Instead, you should send commands to confirm or reject a payment:
@Component
class Purchaser {