Johnson and Trump muscle domestic policy bill through House in massive win for president’s agenda
By Sarah Ferris, Haley Talbot, Veronica Stracqualursi, Lauren Fox, Jeff Zeleny and Alayna Treene
Washington (CNN) — Speaker Mike Johnson delivered a major win for President Donald Trump early Thursday morning, quashing a conservative rebellion and driving a deeply divided House GOP to pass a bill that many of them were still pushing fiercely to change.
House Republicans narrowly passed the president’s sweeping tax and spending cuts package by the speaker’s ambitious Memorial Day deadline, notching a victory for both Johnson and Trump after the bill had been mired in chaos just days earlier.
“Sometimes it’s good to be underestimated, isn’t it?” a sleep-deprived Johnson said on the House floor early Thursday, after multiple all-night negotiating sessions with the corners of his conference.
Less than 12 hours earlier, Johnson watched nearly a dozen of his own Republicans threaten to tank the bill. And before that, the genial Louisianian was staring down a group of GOP centrists vowing to sink the bill without big tax breaks that their fiscal hawk colleagues detested. The dynamic was so complex that even some Republicans didn’t have confidence that Trump’s agenda could pass by the self-imposed deadline – a timeline that some of them privately described as “delusional” when Johnson first proposed it.
Rep. Richard Hudson of North Carolina, a member of Johnson’s leadership team, attributed it to Johnson’s steadiness — and sheer determination to pass it this week.
“Our speaker has the patience of Job,” Hudson said of his Bible-quoting speaker.
“He’s always calm. He’s always patient. It’s astonishing,” Hudson said. “He’s different than any speaker I have worked with. I knew Boehner. I knew Paul Ryan. I was in the room with these guys. He is completely different. I don’t know. There is a humbleness. There is a genuineness. It just comes through.”
Trump himself played a major role in passing the bill, which contains many of his campaign trail promises, such as extending his 2017 tax breaks and eliminating taxes on tips and overtime pay. It also devotes billions to border security, allowing for a major crackdown on immigration. In multiple sit-downs with GOP lawmakers this week, Trump made forceful appeals to members to back his agenda.
That included an eleventh-hour White House meeting on Wednesday to stave off a rebellion by the conservative House Freedom Caucus, in which Trump was “very direct” about the need to pass his agenda, according to a person briefed on the meeting.
“It’s hard to overstate how important that meeting was,” one GOP lawmaker familiar with the meeting told CNN. “That got the last 15 votes.”
The GOP holdouts secured additional adjustments to Medicaid and repealing Biden’s clean energy tax credits, as they continued to grumble about the big-picture cost of the bill. Ultimately, though, they saw little choice but to back it — and now hope to further influence the package in their favor with help from Senate allies.
“It’s been a long fight,” Rep. Eric Burlison of Missouri told CNN just ahead of the House vote. “And I think that there’s a moment where you just kind of take a collective pause and say we’ve accomplished a lot.”
Just how much of the House’s version of the bill will survive in the Senate remains unclear, as Republicans in that chamber have signaled they plan to make changes of their own. But they are still under intense pressure to move quickly: Trump and Johnson have told members they want to sign the bill into law by July 4.
“Now, it’s time for our friends in the United States Senate to get to work, and send this Bill to my desk AS SOON AS POSSIBLE! There is no time to waste,” the president wrote on his Truth Social platform Thursday.
Any changes on the other side of the US Capitol could upset the careful balance struck by House Republican leaders to pass the package through a razon-thin majority. In the end, Johnson failed to win over three GOP votes – all he could lose to advance the bill.
Reps. Thomas Massie of Kentucky and Warren Davidson of Ohio joined all Democrats in voting against the bill, and House Freedom Caucus Chairman Andy Harris of Maryland voted present. The legislation eked out of the chamber in a 215-214 final vote.
One of the bill’s biggest GOP critics, Rep. Chip Roy of Texas, ultimately voted yes.
Presidential pressure
Trump delivered a blunt message to Republican holdouts on his tax-and-spending bill, according to two officials familiar with his comments: Vote no – or try to keep the measure from reaching the House floor this week – and prepare for primary challenges next year.
“The president made clear he wanted the bill to pass and pass now,” an administration official said, explaining the dynamic during a White House meeting on Wednesday with GOP leaders and members of the House Freedom Caucus. “There was no turning back.”
While Trump didn’t issue an overt threat, the two officials said, his point was clear that he needed their full support and that he would help back their reelection efforts in the 2026 elections if they voted yes on the bill.
If they did not, the officials said, it was conveyed in no uncertain terms that MAGA followers would see their resistance as disloyalty – and that would become an issue in their midterm election campaigns and could result in primary challenges.
White House officials had been heavily involved in negotiations over the package last week while Trump was in the Middle East, keeping Trump apprised of how talks were going. It wasn’t until Trump touched back down on US soil that he personally got involved in the process, White House officials told CNN.
The president’s overarching message — during his Tuesday visit to Capitol Hill, at a Wednesday meeting with GOP hardliners at the White House and in direct phone conversations with Republican holdouts Wednesday evening — was: “We have two years of united government before the midterms,” the White House official said. “Don’t be foolish. Voters gave us a once-in-a-hundred-chance to do this.”
While the holdouts on Wednesday expressed their concerns and the president made a point to show he was hearing them out, he also made clear that he was the leader of the party.
The voters, he argued, gave him a mandate to muscle his promises through.
According to an official in the room, the president “laid the hammer down and made it very clear he would not be happy with anyone who chose to nuke this package.” Cuts to Medicaid and work requirements tied to the program remained a key issue during the meeting.
“The president reiterated what he told the full conference on Tuesday, ‘You can’t f**k with Medicaid,’” the official said. However, the White House did propose additional actions related to Medicaid via executive order that could potentially come later.
A long, tense week for the House GOP
The dawn vote on Thursday capped weeks of frenetic negotiating for Johnson and his team, which was particularly intense in the last 72 hours. Those closed-door talks — both at the White House and in Johnson’s speaker suite — yielded a slate of changes that ultimately convinced Republican skeptics to back the bill.
The legislative package already planned to deeply cut into two of the nation’s key safety net programs – Medicaid and food stamps – while making permanent essentially all of the trillions of dollars of individual income tax breaks contained in the GOP’s 2017 Tax Cuts and Jobs Act.
In the final hours of talks, Johnson and Trump agreed to accelerate work requirements for Medicaid to the end of 2026, from the start of 2029. They also agreed to a new incentive for states not to expand Medicaid under the Affordable Care Act — a major drive of health care costs in the US.
And in another major change, Republicans decided to phase out Biden-era energy tax credits far sooner than planned, a move that caused heartburn among moderates.
The late-minute changes also formalized one of Johnson’s biggest deals this week: a significant increase in the amount of money taxpayers can deduct for state and local income taxes — up to $40,000 for certain income groups, an increase from the current cap of $10,000. GOP leaders had initially proposed a cap of $30,000 but key New York, New Jersey and California Republicans had refused to support it.
Now, the bill must endure a long march through the Senate to Trump’s desk.
Senate Majority Leader John Thune is eager to begin work on the package, which has so far been a largely House-dominated product. But he’s facing a fractious GOP conference there, too — with some of his key members up for reelection next year.
House GOP hardliners will press their Senate allies, including Sens. Mike Lee, Rick Scott and Ron Johnson, to hold the line on deficit reduction and to go even further on Medicaid changes, such as a contentious push to overhaul the way that the federal government pays states for the program.
“We’re going to be pretty strong on some red lines ourselves – the fiscal hawks, saying look guys, don’t come back and send us a bill that’s going to ratchet up deficits. We can’t have that,” Roy told CNBC’s “Squawkbox” Thursday after the vote.
“I didn’t get everything I wanted. I think there’s some other stuff that I hope the Senate might address – both on deficit and on the Medicaid issue with all the ridiculousness of the [Federal Medical Assistance Percentage] and provider tax games they play that’s a money laundering scheme that I think we can still improve.”
This headline and story have been updated with additional developments.
CNN’s Clare Foran, Morgan Rimmer, Manu Raju, Alison Main, Aileen Graef and Annie Grayer contributed to this report.
The-CNN-Wire
™ & © 2025 Cable News Network, Inc., a Warner Bros. Discovery Company. All rights reserved.