Импорт из CSV на PHP, фреймворк Laravel, первая строка заголовки

Задача импортировать CSV. Первая строка заголовки, остальные данные.

Пример содержимого (файл разместил в проекте Laravel: storage/test.csv):

Title;"C Line";Featuring;"Primary genre";"Track artist name";"Track Featuring";"Track primary genre";ISRC;"Track title";UPC
"Живу хорошо";Explorer;;"Rock - Singer / Songwriter";"Куку";;"Rock - Singer / Songwriter";FR-X20-11-56789;Причина;73734265345643
"Pretty Romantic Goon";Peter;;"Rock - Singer / Songwriter";"Кака";;"Rock - Singer / Songwriter";FR-X20-22-56189;Она;54376546546456

Пример чтения CSV командой на Laravel:

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;

class Test extends Command
{
    protected $signature = 'command:test';
    protected $description = 'Command description';

    public function __construct()
    {
        parent::__construct();
    }
    
    public function handle()
    {
        // Чтение файла CSV
        $csv = fopen(storage_path('test.csv'), 'r');
        if ( !$csv ) $this->output->writeln("Ошибка! Файл не открывается: " . storage_path('test.csv'));

        // Получение первой строки с заголовками
        $columns = fgetcsv($csv, 2048, ';');

        // Проходим все заголовки в цикле
        foreach ($columns as $k => $v) {
            // У первого заголовка убираем символ который вызывает ошибку (если титул на латинице написан)
            if ($k == 0) $v = iconv("UTF-8", "CP1252//IGNORE", $v);
            // Убираем пробелы по краям
            $columns[$k] = trim($v);
        }

        // получение кол-ва заголовков
        $column_count = count($columns);

        // Проходим циклом все строки
        while ( $data = fgetcsv($csv, 2048, ';') ) {

            // Проверка кол-ва записей если меньше чем кол-во заголовков
            if (count($data) < $column_count) continue;

            // Проходим массив данных и убираем пробелы по краям
            foreach ($data as $k => $v) $data[$k] = trim($v);

            // Ключи для массива данных из массива первой строки
            $data = array_combine($columns, $data);

            // Получение результата
            print_r($data);

        }
    }
}

Выполнить:

php artisan command:test

Результат выполнения:

Array
(
    [Title] => Живу хорошо
    [C Line] => Explorer
    [Featuring] => 
    [Primary genre] => Rock - Singer / Songwriter
    [Track artist name] => Куку
    [Track Featuring] => 
    [Track primary genre] => Rock - Singer / Songwriter
    [ISRC] => FR-X20-11-56789
    [Track title] => Причина
    [UPC] => 73734265345643
)
Array
(
    [Title] => Pretty Romantic Goon
    [C Line] => Peter
    [Featuring] => 
    [Primary genre] => Rock - Singer / Songwriter
    [Track artist name] => Кака
    [Track Featuring] => 
    [Track primary genre] => Rock - Singer / Songwriter
    [ISRC] => FR-X20-22-56189
    [Track title] => Она
    [UPC] => 54376546546456
)