Почти всё правильно.
Только при инициализации нужно указывать не файл, а директорию.
Если файл у вас имеет название по умолчанию, то есть
.env
, то без второго параметра
$dotenv = Dotenv\Dotenv::createImmutable(dirname(__DIR__));
При такой записи файл
.env
должен располагаться на один уровень выше файла, в котором вы это написали.
Если хотите по другому файл назвать, то новое имя следует передать во втором параметре, без точки.
$dotenv = Dotenv\Dotenv::createImmutable(dirname(__DIR__), 'my_env');
Теперь файл должен располагаться там же, но называться
.my_env