Carlos Beltran had been traded twice by long-term employers, the Royals and Mets, and knew the relatively low-budget Astros could not afford him after he nearly carried them to a National League pennant in 2004.
Yes, Beltran signed a 7-year, $119m deal with the Mets in 2005. The Astros opened with a 5-year, $75m deal with an option for a 6th year (which would indicate that it was at least a $90m offer), and ultimately offered six years and $102m before the Mets came in with the same math and an extra year.
So no, the "low-budget" Astros "could not afford" Carlos Beltran. But not for a lack of trying.