digraph stateMachine { rankdir=LR; node [shape=circle, style=filled, fillcolor=lightgray]; start [shape=point, label=""]; FULFILLED [shape=circle, fillcolor=lightgray]; PAID1 [shape=circle, fillcolor=lightgray]; PAID3 [shape=circle, fillcolor=lightgray]; PAID2 [shape=circle, fillcolor=lightgray]; HAPPEN [shape=circle, fillcolor=lightgray]; CANCELED [shape=circle, fillcolor=lightgray]; PAID [shape=circle, fillcolor=lightgray]; SUBMITTED [shape=circle, fillcolor=lightgray]; PAID_choice [shape=diamond, label="", fillcolor=lightyellow]; SUBMITTED_choice [shape=diamond, label="", fillcolor=lightyellow]; start -> SUBMITTED; PAID -> PAID_choice; SUBMITTED -> SUBMITTED_choice; SUBMITTED -> PAID [label="PAY"]; PAID -> FULFILLED [label="FULFILL"]; SUBMITTED -> CANCELED [label="CANCEL [lambda]"]; PAID -> CANCELED [label="CANCEL"]; SUBMITTED -> SUBMITTED [label="ABCD"]; SUBMITTED_choice -> PAID2 [label=" [lambda]"]; SUBMITTED_choice -> PAID3; PAID_choice -> PAID1 [label=" [lambda]"]; PAID_choice -> PAID2 [label=" [lambda]"]; PAID_choice -> HAPPEN [label=" [lambda]"]; PAID_choice -> PAID3; PAID2 -> CANCELED; PAID3 -> CANCELED; PAID1 -> PAID1 [label="ABCD"]; }