handle Event
Handles an event and potentially transitions the state.
If a handler is registered for the event type, it will be invoked to determine the new state. The new state will be validated before being accepted.
Return
StateUpdateResult indicating success, validation failure, or update failure
Parameters
event
The event to handle