When using the Storage facade in a controller, you can return the image as a response in Laravel 5.7. The response() function will automatically set the headers required rather than attempting to do it yourself.
// Option #1
return Storage::response('test.jpg'); // Local storage
// Option #2
return Storage::disk('s3')->response('test.jpg'); // If you are using an S3 driver
// Option #3
return Storage::cloud()->response('test.jpg'); // Also S3 driver unless otherwise configured
This is not documented, but can be found by looking at the underlying Laravel code:
/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php
If you still need to get the mime type for any reason, you should be able to retrieve it by calling:
$mimeType = Storage::mimeType('test.jpg');