Append Custom Shipping method to list of methods

In Magento 2.3 I want to append a shipping method to my collection of methods but it’s not working. This is what I’m doing:

  1. I’m selecting the cheapest rate from the collection of rates with

    $cheapestRate = $this->getResult()->getCheapestRate()
  2. Then, I reset the original collection with $this->getResult()->reset()
  3. I append the cheapest rate to the now clean collection of methods with


  4. I’m displaying the cheapest rate so far. Now, I want to add a custom method with a cost of $0.00. This is what I do:

    private function addCustomShippingToMethods($method, $result) {
    return $this;

  5. So, to insert the custom method in step 4, I call addCustomShippingToMethods right after the last line in step 3 like this

    $this->addCustomShippingToMethods($method, $result);

The problem is that I only see the custom method in the checkout page but not the cheapest one. If I remove the call to add the custom method then I only see the cheapest one.

In a few words, all the shipping options I want to see in the checkout page are the cheapest rate and the custom shipping at $0.00.

What am I doing wrong?

Thanks for any advice.