public function handleLine(array $csvLine)
    {
        $fields = $this->importer->parseLine($csvLine);
        $hash = $this->makeHash($fields);
        $item = $this->importer->getModelInstance()
            ->where($this->importer->getUniqueKey(), $fields[$this->importer->getUniqueKey()])
            ->lockForUpdate()
            ->first();

        if ($item === null) {
            // Create a new item and fill it with the fields
            $item = $this->importer->getModelInstance();
            $item->fill($fields);

            $this->added++;
        } elseif ($hash !== $item->hash) {
            // Update the fields if there is a hash mismatch
            $item->fill($fields);

            $this->updated++;
        } elseif ($hash === $item->hash) {
            $this->unchanged++;
        }

        $item->hash = $hash;

        if (!$this->dryRun) {
            $item->save();
        }
    }