Sometimes laravel storage link doesnt work on ceratin hosting environments, one fo the examples is that on some shared hosting services you may find that laravel can't use or more commonly cant load files from the local disk.
Well simply being a simple problem at the surface and can be fixed with a few commands to your hosting service's console. This proble still stumped many users of laravel due to not knowing what restrictions or config is needed to setup local disk storage with laravel.
The fix is very simple, just link your /storage/app/public folder manually in the linux console instead of using laravel's built-in storage:link command in artisan.
Why though? you may ask. This is due to some providers disabling some features of php in their environment for better security.