Level 2
I Found a workaround, first saving locally and pulled the locally stored image to S3 and Deleting from local after upload
foreach ($request->image_upload as $image) {
// Store Image with random name
$path = $image->store('');
$get_doc_name = explode('/', $path);
//
// Upload Max File size specified above
//
$img_full = Image::make(storage_path('app/documents/' . $get_doc_name[0]));
$img_full->height() > $img_full->width() ? $width = null : $height = null;
$img_full->resize($width, $height, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})->orientate();
// Replace + Upload re-sized thumbnails to local disk
$img_full->save(storage_path('app/documents/' . $get_doc_name[0]));
// Send Uploaded Image to S3 with unique name
$name = Storage::disk('s3')->putFile($file_path, new File(storage_path('app/documents/' . $get_doc_name[0])), 'public');
$getName = explode('/', $name); // Default is $getName[6] for image name
// Delete Thumbnail locally after Upload to S3
unlink(storage_path('app/documents/' . $get_doc_name[0]));
}