Machinist.Transition module behaviour
Machinist.Transition
transit(struct(), [{:event, String.t()}]) :: {:ok, struct()} | {:error, :not_allowed | String.t()}