Accept all possible `state` representation in `transition()` methods.
One can for example pass EventState.COMPLETE, EventState.COMPLETE.value
or "complete" as a `state` in `transition` method.
We so far supported just passing the `EventState.COMPLETE.value`, but
some parts of code used `EventState.COMPLETE`.
In this commit, the `transition` methods are changed to support all
three ways.