@startuml [*] --> SUBMITTED SUBMITTED --> PAID : PAY PAID --> FULFILLED : FULFILL SUBMITTED --> CANCELED : CANCEL [guard] PAID --> CANCELED : CANCEL PAID2 --> CANCELED PAID3 --> CANCELED CANCELED --> [*] FULFILLED --> [*] @enduml