cleansOldAddress = $cleansOldAddress; $this->createsAddress = $createsAddress; } /** * @param OldAddress $address * @param Addressable $addressable * @return Model|null * @throws \App\Classes\Exceptions\MalformedRequestException */ public function execute(OldAddress $address, Addressable $addressable): ?Model { if(!$object = $this->cleansOldAddress->execute($address)){ return null; } if(!$addressable instanceof Order && $address = $addressable->addresses()->where('street_one', $object->getStreetOne())->first()) { return $address; } return $this->createsAddress->execute($addressable, $object); } }