constructFreightOrder($dto); foreach ($dto->carrierIds as $carrierId) { $this->updateCarrier( $carrierId, $savedFreightOrder->getId() ); } return $savedFreightOrder; } private function updateCarrier( int $carrierId, int $freightOrderId ): void { $carrier = $this->carrierRepo->find($carrierId); $carrierFreightOrderIds = $carrier->getFreightOrderIds(); $carrierFreightOrderIds[] = $freightOrderId; $carrier->setFreightOrderIds($carrierFreightOrderIds); $this->carrierRepo->save($carrier); } private function constructFreightOrder( CreateFreightOrderRequestDTO $dto, ): FreightOrder { return $this->freightOrderRepo->save( new FreightOrder( null, $dto->shipFrom, $dto->shipTo, $dto->pickupDate, $dto->deliveryDeadline, $dto->loadDetails, $dto->notes, $dto->fileAttachments, $dto->carrierIds, )); } }