So many design flaws there :(
The most obvious is wasting energy in a linear regulator (7805) instead of using a 12 volt coil rated relay. Also in most cases there is no reason to employ a precise voltage regulation just to power a relay coil. Relays are pretty tolerant to voltage swings and spikes. Should you for some reason need to get 5V from 12V and waste much less of power, there is a lot of ready-to-use step-down converter modules. The cheapest Chinese ones don't cost much more than the 7805 and perform surprisingly good.
But the most important problem is your choice of switching element. Your circuit takes no advantage from using a relay. There is no galvanic separation i.e. everything is interconnected through a common GND. The voltage being switched is actually low enough to just use a single N-MOSFET. That's it, a single element, and you can ditch all of this complicated circuitry. You will need a logic-level one to make it open with just 3.3 V. Fortunately there is a plenty of them e.g. FDN359BN, and a bigger one STB55NF06L.
https://elinux.org/RPi_GPIO_Interface_Circuits#Using_a_FET