Add state and state changed timestamp to user model
Add state machine to user model
Refactor user model