One of the hardest things to do in all of sports is to know when to "sell high" on your own talent. Teams like the St. Louis Cardinals will always want to believe that their own talent will continue to ascend, but sometimes, players peak early or don't actually have that "extra gear" the club is hoping for.
Unfortunately, the Cardinals have instead decided to trade away players that have not had the opportunity to prove themselves, like Randy Arozarnea, Adolis Garcia, Zac Gallen, and Sandy Alcantara. None of those four were given a significant run as Cardinals and then went on to get opportunities elsewhere and flourish.
The Cardinals are rightfully hesitant to make those same mistakes again, but in the process have held onto other assets far long than they should have for the value they hold around the league. There are various assets that St. Louis has that, if they had traded them earlier, would have fetched them a lot of value in a deal. For a variety of reasons, each of these guys has seen their trade value dip since then.
No team is perfect at this, but it has become increasingly frustrating to watch this Cardinals' organization hold their cards far too long on the wrong players, and then fold quickly on guys who would end up being the better talents. This has to change moving forward in order for this team to turn things around.