Cohen was a credible witness, because of what he said as well as what he did not say. At one point Cohen reminded the Republicans who attacked him that for 10 years he had done what they were doing: protecting Trump even if it meant attacking others. Cohen reminded the Republicans that it had not worked out well for him.
Given several opportunities to allege that Trump had committed crimes or lousy behavior, Cohen demurred or denied that he had any evidence against Trump. Cohen did say enough to point investigators toward tax, insurance, banking, and campaign finance crimes in which Trump may be involved. Cohen is a convicted perjurer, and his testimony will not be enough for either impeachment or indictment. But Cohen pointed to the witnesses and documents who could confirm what he said.
While the Republicans on the committee attacked Cohen, they did not defend Trump. Their strategy may indicate that the support of the Republicans on the committee may waver. On the other hand, it is also possible that they lack the skills to effectively question Cohen. Their ineptitude may be why many of the Republicans used their own experiences before entering Congress to frame their questions. The Democrats used their positions as members of Congress with oversight responsibilities to frame their issues. Many of the Democrats asked questions that were designed to elicit information to carry out their duty.
Cohen and Democrats won; Trump and the Republicans lost. And, given what Cohen said, the prosecutors who have been looking at Trump surely have a massive load of evidence against Trump.