public function doCreateAlbum(Guard $guard, Request $request)
 {
     if ($guard->guest()) {
         throw new AppException(AppException::NEED_SIGN_IN);
     }
     $musics = $request->get('musics');
     $coverImageId = $request->get('cover_image_id');
     $title = $request->get('title');
     $artist = $request->get('artist');
     $year = $request->get('year');
     $genre = $request->get('genre');
     $album = new Album();
     $album->title = $title;
     $album->artist = $artist;
     $album->year = $year;
     $album->genre = $genre;
     $album->coverImage()->associate($coverImageId);
     $album->user()->associate($guard->id());
     $album->save();
     foreach ($musics as $musicId) {
         /** @var Music $music */
         $music = Music::where('id', $musicId)->first();
         if (!$music) {
             continue;
         }
         $album->musics()->attach($musicId);
         if (!$music->coverImage) {
             $music->coverImage()->associate($album->coverImage);
             $music->save();
         }
     }
     return $this->buildResponse(trans('api.album.create.success'), Tools::toArray($album));
 }