digraph statemachine {
  rankdir=LR;
  node [shape=rounded, style=filled, fillcolor=white, fontname="Arial"];
  edge [fontname="Arial", fontsize=10];

  PAID1_choice [shape=diamond, label="", fillcolor="blue", width=0.2, height=0.2];
  PAID1 -> PAID1_choice [style=dotted, color="blue"];
  _start [shape=circle, label="", fillcolor=black, width=0.1];
  _start -> SUBMITTED;
  CANCELED [fillcolor=lightgray];
  FULFILLED [fillcolor=lightgray];
  SUBMITTED -> PAID [label="OrderEvents.PAY", style="solid", color="black"];
  PAID -> FULFILLED [label="OrderEvents.FULFILL", style="solid", color="black"];
  SUBMITTED -> CANCELED [label="OrderEvents.CANCEL [λ]", style="solid", color="black"];
  PAID -> CANCELED [label="OrderEvents.CANCEL", style="solid", color="black"];
  SUBMITTED -> SUBMITTED [label="OrderEvents.ABCD", style="solid", color="black"];
  SUBMITTED -> PAID1 [label="OrderEvents.ABCD", style="solid", color="black"];
  PAID1_choice -> PAID2 [label="[λ] (order=0)", style="solid", color="blue"];
  PAID1_choice -> PAID3 [label="[guard1] (order=1)", style="solid", color="blue"];
  PAID1_choice -> HAPPEN [label="[λ] (order=2)", style="solid", color="blue"];
  PAID1_choice -> CANCELED [label="(order=3)", style="solid", color="blue"];
  PAID2 -> CANCELED [style="solid", color="black"];
  PAID3 -> CANCELED [style="solid", color="black"];
  PAID2 -> PAID2 [label="OrderEvents.ABCD / λ, action2", style="solid", color="black"];
}

