if: :completed? after_commit :create_delivery, on: :update, if: :completed? after_commit :create_invoice, on: :update, if: :completed? after_commit :record_purchase_history, on: :update, if: :completed? after_commit :update_stock, on: :update, if: :completed? private def grant_points Point.create!(user: user, amount: amount * 0.01) end def create_delivery Delivery.create!(order: self, address: shipping_address) end # 処理が続く... end 37/63