Короче говоря, сразу отмечу, мне не очень нравится такое вкрапления кода в шаблон, я бы создал свой сервисный класс обертку, но да ладно. Значит у тега a есть свойство download, куда можно дать имя файла(как он будет называться при сохранении) и который браузеру сразу и подскажет что ссылка для скачивания и угадывать что там не нужно, ждать хедеров от сервера и тп тоже не нужно(я упростил объяснение).
Ваш код должен быть таким:
<img src="data:image/png;base64, {!! base64_encode(QrCode::format('png')->size(300)->wiFi([
'ssid' => $this->ssid,
'encryption' => $this->encryption,
'password' => $this->password
])) !!} ">
<a
download="qr.png"
href="data:image/png;base64, {!! base64_encode(QrCode::format('png')->size(300)->wiFi([
'ssid' => $this->ssid,
'encryption' => $this->encryption,
'password' => $this->password
])) !!}" class=""></a>
Как видим, код здесь повторяется и два раза генерируем png, поэтому возможно есть смысл использовать доп переменную что сохранить код картинки и в blade передавать уже только само значение переменной.