move most post-approval tasks to after_save