приложение моделирует процессы реального мира. если процессы поставлены криво - то это повлечет и кривую реализацию. Например:
я на кассе оплачиваю покупку в магазине, сначала заказ должен быть сформирован - кассир пробивает все позиции, а потом спрашивает как я будут оплачивать.
* Фактически сначала создается заказ, потом происходит процесс попытки оплаты - сам процесс попытки оплаты также можно отразить в виде объекта предметной области.
* Процесс попытки оплатить - имеет свой идентификатор, имеет id заказа, и имеет свой тип(оплата налом, банковской картой, по qr коду и т.д.).
* В такой ситуации будет событие -
создание заказа(и там не будет ничего про способ оплаты),
и будет событие инициации процесса попытки оплатить (попыток может быть несколько, например на карте не было денег, попробовал другой картой)
Если процесс в реальном мире поставлен так что кассир меня сначала спросит про способ оплаты, а потом начнет пробивать позиции в заказе - то да, придется отражать это в приложение. Т.е. заказ будет содержать в себе данные о способе оплаты - и это породит много веселого, например если заказ был создан с типом оплаты - "наличка", налички не хватило, клиент начал платить картой. Что должно меняться и в какой последовательности - для меня имхо это ад и содомия.
Вариант когда в реальности процесс поставлен корректно, но у разработчика не хватило компетенции отразить это в коде - это отдельный случай.