Driving 12v SevSeg from Arduino 5v

i tested by directly connecting the segment pins to positive and a digit pin to negative.

Don’t do that you will damage your digital pin as it puts 12 V on it when it is off which is way over the Vcc + 0.5V limit.

It's a 12v sevseg common cathode.

That is probably the worst way round. You need an NPN and PNP to drive each segment.