protected function handleProductTrack(Product $product, ProductTrack $productTrack) { $track = $this->trackRepository->getById($productTrack->getTrackId()); if ($track) { $product->addProductTrack($productTrack); $productTrack->setProduct($product); $productTrack->setTrack($track); $track->addProductTrack($productTrack); } else { // throw inconsistency exception $this->missingTracks++; } }