スライスを型宣言してデータベースから自身の情報を取得するメソッドを実装したのですが、メソッド内で確認するとArtistというフィールドの情報が取得できていますが、メソッドの呼び出し元で表示するとArtistフィールドを変更できていません。

type Track struct {
    gorm.Model
    Name     string `sql:"not null;unique" json:"name"`
    Phonetic string `json:"phonetic"`
    Artist   Artist `json:"artist"`
    ArtistID uint   `json:"artistId"`
}

type Tracks []Track

func (ts *Tracks) List(dba *gorm.DB, limit, offset int) error {
    err := dba.Order("created_at desc").Limit(limit).Offset(offset).Find(ts).Error
    if err != nil {
        return err
    }
    newSlice := make(Tracks, len(*ts))
    for i, t := range *ts {
        if err = dba.Model(&t).Related(&t.Artist).Error; err != nil {
            return err
        }
        newSlice[i] = t
    }
    ts = &newSlice
    // ここでTrack内のArtistに情報が入っている。
    log.Println(ts)
    return err
}

func someFunc(){
    var tracks Tracks
    tracks.List(dba, limit, offset)
    // ここで確認するとArtistが初期化されている。
    log.Println(tracks)
}

なぜこのような挙動になるのでしょうか。良い実装方法があれば教えてください。よろしくお願い致します。