Would this be better handled by a `before_transition :on => :publish` hook.  That would avoid doing 2 db writes, and possible inconsistency should one fail.