DRY up after_{create,update} hooks
move distribution job creation from frontend here