This worked for me ... (must add AWS settings to the filesystems config)
public function booted()
{
// Override the default UpdateProfilePhoto@handle method which stores the file locally
Spark::swap('UpdateProfilePhoto@handle', function ($user, array $data)
{
$imageManager = new ImageManager();
$file = $data['photo'];
$formatImage = (string) $imageManager->make($file->path())->fit(300)->encode();
$path = $file->hashName('profiles');
// Store the file on s3, grab the url and store with this user in the database row.
$disk = Storage::disk('s3');
$disk->put(
$path, $formatImage
);
$user->forceFill([
'photo_url' => $disk->url($path),
])->save();
});
}