Почему не работает file_exists() в Laravel при загрузке на сервер?
Относительные пути, Карл! Никогда  не используй относительные пути.
Проблему решил следующей проверкой:function productImage($path)
{
    return $path && Storage::disk('local')->exists('public', $path) ? Storage::disk('local')->url($path) : asset('img/not-found.jpg');
}