Why not wrap the content of this `#purchase` in its own class? You could define with something like this:
```ruby
# app/models/album_order.rb
def purchase
  AlbumOrderPurchase.new(self).confirm!
end

# app/models/album_order_purchase.rb
class AlbumOrderPurchase
  def confirm!
    # calls prepare, updates AlbumOrder attributes and saves it
  end

  protected

  def prepare
    # zips the album and calls #upload
  end

  def upload
    # checks if needs upload the album to S3 or any other external service
  end
end
```