Заказ в интернет-магазине редко живёт по идеальной схеме «создан → оплачен → доставлен». В реальности жизненный цикл объекта нелинейный: клиент оформляет заказ, но может передумать и отменить его; товар приходит с браком и требуется возврат; часть позиций не успела прийти и нужно отправить их…
Symfony Workflow: как реализовать сложную бизнес-логику через состояния и переходы
Это краткое изложение. Полный текст материала доступен на сайте источника.