If you are using the Storage facade, then you can make use of the mocking features built into it to verify that the correct calls are made with the correct parameters.
http://laravel.com/docs/5.1/testing#mocking-facades
You can also mock Jobs and Events if needed...
http://laravel.com/docs/5.1/testing#mocking
If you want to really test that the file has really been uploaded to S3 or similar, then I'd make sure that things like the target bucket are configured in the environment, so you can send stuff to a test bucket in testing. You'd then have to just try and download your test file after the upload completes and ensure that it has the correct content. This will be slow though, so possibly put it in a separate set of tests that you don't have to run 500 times a day.