Now, any file I upload gets stored to /path/to/my/laravel/project/storage/app/institute_logos and not to the /path/to/my/laravel/project/storage/app/public/institute_logos/ directory (using which I can make the file accessible publicly from the web).
I have already done that and i can indeed access the files that are present in the public directory, but the thing is when i upload the files, then do not get uploaded in the public directory (in the app directory instead).
The way I currently solve it is to manually specify the public directory while saving my files:
$path = request('my_file')->store('public/institute_logos');
$path = str_replace('public/', '/storage/', $path);
// now wherever you need to display the image, you can just immediately use the path:
<img src="{{ $model->photo }}">
If you check the https://laravel.com/docs/5.4/filesystem documentation,
you will notice that you can set several disk on your configuration, publics or not.
Then you can upload a file using the storeAs() method and there you can indicate what disk you want to use.