/**
  * Upload a file and save it in storage.
  *
  * @param UploadedFile $uploadedFile
  * @param string       $directory
  * @return array
  */
 static function upload(UploadedFile $uploadedFile, $directory)
 {
     $extension = $uploadedFile->getClientOriginalExtension();
     if ($extension != '') {
         // get the filename
         $filename = $uploadedFile->getClientOriginalName();
         // get the name of the file and the mime type
         $name = substr($filename, 0, strrpos($filename, '.'));
         $mime = $uploadedFile->getClientMimeType();
         // clean up the filename
         $filename = FileHelper::serializeFilename($filename, true);
         // make sure the filename is unique
         $filename = FileHelper::incrementFilename($filename, $directory);
         // the full path to the file
         $filepath = $directory . $filename;
         // save new file to storage
         Storage::put($filepath, File::get($uploadedFile));
         return array('name' => $name, 'mime' => $mime, 'filename' => $filename);
     }
 }