/** * {@inheritDoc} * @see \Fixin\Delivery\Cargo\CargoHandlerInterface::handle($cargo) */ public function handle(CargoInterface $cargo) : CargoInterface { $cargo->setDelivered(false); $index = 0; $length = count($this->nodes); while ($index < $length) { $cargo = $this->getNode($index)->handle($cargo); if ($cargo->isDelivered()) { break; } $index++; } return $cargo; }