public static function make(User $user, UserRequest $request)
 {
     $avatarName = static::generateName(null, $request->file('avatar')->getClientOriginalExtension());
     $avatarUrl = static::url($avatarName);
     $avatarMime = $request->file('avatar')->getMimeType();
     $avatarSize = $request->file('avatar')->getSize();
     // Move avatar file
     $request->file('avatar')->move(public_path('avatars'), $avatarName);
     if (isset($user->avatar) && !is_null($user->avatar->name)) {
         $avatar = $user->avatar;
         Avatar::deleteFile($avatar->name);
     } else {
         // New up Avatar object
         $avatar = new Avatar();
         // Associate user to the avatar
         $avatar->user()->associate($user);
     }
     // Assign required properties
     $avatar->name = $avatarName;
     $avatar->url = $avatarUrl;
     $avatar->mime = $avatarMime;
     $avatar->size = $avatarSize;
     // Save the avatar
     $avatar->save();
 }