name raw, showing the storefront the raw * JSON blob instead of a translated string). The generic drivers' * create{X}Driver() methods still exist on the parent (harmless — nothing * calls them once their key is gone from getSupportedDrivers()), so this * only needs to override the one method that lists what's offered. * * Bound over the vendor's own ShippingMethodManagerInterface binding in * ShippingServiceProvider, from inside its own $this->app->booted(...) * callback — a plain register()-time bind() here runs BEFORE the * vendor's own (composer discovers boboko/core before lunarphp/ * table-rate-shipping alphabetically), so the vendor's later bind() * would silently win instead. See that provider's own comment. */ class ShippingManager extends VendorShippingManager { public function getSupportedDrivers(): \Illuminate\Support\Collection { return collect($this->customCreators) ->mapWithKeys(function ($creator, $key) { return [$key => $this->callCustomCreator($key)]; }); } }