digraph G { initial[label="", shape="circle", xlabel="deposit"]; pending_deposit[label="deposit"]; pending_track[label="track"]; pending_kyc[label="kyc"]; pending_aml[label="aml"]; aborting_refresh[label="refresh", style=dashed]; aborting_refund[label="refund", style=dashed]; done[label="done", shape="box"]; aborted[label="aborted", shape="box", style=dashed]; subgraph { rank=same; done; aborted; } subgraph { rank=same; pending_track; aborting_refund; } subgraph { rank=same; pending_deposit; pending_kyc; pending_aml; } initial->pending_deposit; aborting_refund->aborting_refresh [color=green]; aborting_refresh->aborted [color=green]; pending_deposit->pending_track [color=green]; pending_deposit->aborting_refund [color="red"]; pending_deposit->aborting_refund [color="blue", style=dashed]; pending_track->aborting_refund [color="blue", style=dashed]; pending_track->done [color=green]; pending_track->pending_kyc [color=red]; pending_track->pending_aml [color=red]; pending_kyc->pending_track [color="green"]; pending_aml->pending_track [color="green"]; }