a) 12V → Arduino (thru power socket) → Arduino +5V out → other components
If you don’t use more than about 500mA this is an easy and good way to go.
b) 12V → voltage regulator (7805 5V) → Arduino VIN + other components
Wrong. Regulated 5V go to the 5V pin and not VIN. VIN has to be at least 2V higher than Vcc, so has to be 7V or more. If you go to 5V pin, you do the same as the internal voltage regulator is doing, in some cases it’s even a 7805. And you don’t get more current.
Using the low dropout regulator on the arduino will be more efficient compared to a regular 7805 regulator. There's also a diode in there for reverse polarity protection. Unless you need more than what the regulator can provide (1A according to the datasheet, but best not to overdo it so 500mA is a good limit - plenty for your application, unless your transistor is driving a large load), you're probably better off using that because a) you're reinventing the wheel, b) requires fewer components, c) uses a 2.1mm dc connector, which is more secure than sticking wires into the +5v socket, and d) there's the inherent reverse polarity protection.