Even when the following general validation fails, the changed
state_event param passed from the form triggers it's transition callbacks
to be fired.
validate :validate_name_change, :on => :update
if name.to_s != name_was.to_s
errors.add(:name, "can't be changed")
 not inside the state_machine block.
What's the way out? Sorry I have been asking a lot here lately, but I guess
my questions and their subsequent answers would help others in doubt.