If you look closely at the error you can see that it tries to send to an empty email
Address in mailbox given [] does not comply with RFC 2822, 3.6.2.
So the problem here is that you cache your config. Whenever you cache your config, Laravel won't read the env values directly anymore. Instead it will combine all config files to one and fetch the data from there.
So if you want to have config caching you have to use the config instead
->from(config('mail.from.address'), "$user->firstname $user->lastname")
Source: https://github.com/laravel/laravel/blob/master/config/mail.php#L59
Let me know if that works for you!