This is my state diagram:

My game change states only after user action (only exception is “time’s up”).
I don’t know best practice how I should implement my mechanism, which will help my swich between states.
Should I define proper enum? Whether each state should have own method? How to control whether changed state is acceptable?
Any tip is welcome!
You could use the state design pattern: State pattern
That way every state is its own object and handles the state transitions.