public function start(?string $groupCode = null): void 	{ 		$request = request();  		$csvFile = fopen($request->file($this->fileForm)->getPathname(), 'r');  		if (!$csvFile) { 			throw new FileNotFoundException; 		}  		$productsCollection = collect($this->getProducts()); 		$stock = collect($this->getStock());  		$categories = $this->getCategories();  		while ($data = fgetcsv($csvFile)) { 			if ($this->skipHeaderRow) { 				$this->skipHeaderRow = false;  				continue; 			}  			$productCode = $data[0];  			$productInStock = $stock->firstWhere('ProductCode', $productCode); 			$productInCollection = $productsCollection->firstWhere('ProductCode', $productCode);  			$name = $data[1]; 			$slug = Product::generateSlug($data[1]); 			$price = $data[5] ?? 0; 			$quantity = $productInStock['Quantity'] ?? 0; 			$category_id = $categories->firstWhere('group_code', $data[2])['id'] ?? null; 			$weight = $productInStock['Weight'] ?? 0; 			$type = Product::REGULAR_PRODUCT; 			$unit_of_measure = array_search($productInCollection['UnitOfMeasure'] ?? null, Product::getMeasureUnites()); 			$alternative_unit_of_measure = isset($productInCollection['AlternativeUnitOfMeasure']) ? array_search($productInCollection['AlternativeUnitOfMeasure'], Product::getAlternativeMeasureUnites()) : null; 			$conversion_to_quantity = $productInCollection['ConversionToQuantity'] ?? null;  			try { 				$unitOfMeasureValueObject = PriceFromPricePerMeasureUnitFactory::make($unit_of_measure, $price, $alternative_unit_of_measure, $conversion_to_quantity, $weight); 			} catch (Exception) { 				continue; 			}  			$result = $unitOfMeasureValueObject->getPrices();  			$validator = $this->createValidatorInstance($name, $slug, $result->getPrice(), $quantity, $category_id, $weight, $type, $unit_of_measure, $productCode, $result->getPricePerUnitOfMeasure(), $alternative_unit_of_measure, $conversion_to_quantity);  			if ($validator->fails()) { 				$this->failedImportsCount++; 				$this->failedImports['items'][$data[0]] = $validator->errors();  				continue; 			}  			/** 			 * @var Product $product 			 */ 			$product = $this->updateOrCreateItem($name, $slug, $result->getPrice(), $quantity, $category_id, $weight, $type, $unit_of_measure, $productCode, $result->getPricePerUnitOfMeasure(), $alternative_unit_of_measure, $conversion_to_quantity);  			if ($category_id) { 				$this->updateCategoryRelation($product, $category_id); 			}  			$this->importedItemsCount++; 		}  		fclose($csvFile);  		$this->logStatistics(); 	}