set value_changed_at in before_validation callback rather than before_save