You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: cherrypick_request.rb
    path of file: ./repos/sequencescape/app/models
    
    the code of the file until where you have to start completion: # frozen_string_literal: true

# This class is due to replace CherrypickForPulldownRequest
# A cherrypick represents a request to transfer material from one plate to another,
# us
    
  def on_started
    # Aliquots are transferred on creation by transfer requests.
    # This isn't ideal, but makes the transition easier without
    # slowing actual picks down.
  end

  def on_passed
    target_asset.transfer_requests_as_target.where(submission_id: submission_id).find_each(&:pass!)
  end

  def reduce_source_volume
    return unless asset.get_current_volume

    subtracted_volume = target_asset.get_picked_volume
    new_volume = asset.get_current_volume - subtracted_volume
    asset.set_current_volume(new_volume)
  end

  private

  # The transfer requests handle the actual transfer
  def transfer_aliquots
    TransferRequest.create!(asset: asset, target_asset: target_asset, outer_request: self)
  end
end