How to bias BJT base voltage in a push pull amplifier AND control current gain
you gotta start with better specs


  
  in case you hadn’t noticed yet, your BJT’s are always conducting  creating a condition called ‘shoot thru’ , shorting out the supply on both sides. There must always be a dead band and thus a deadtime during transition.
  

start with your output impedance model of a motor with back EMF as a motor/generator or simply DCR coil resistance and Motor Inductance for now. Z=DCR+j2pifL then define. 


motor specs Vrated kV/RPM and I rated =~10% surge start =V/DCR

then define your desired current waveform across this Load with ideal 24 30V power supply.  DC + ramp  with variable DC with PWM controlled square-wave for same DC ramp to limit current 30V/DCR on start.
then define what voltage controlled transistor will give you this current output.
e.g. 28V complementary emitter follower Darlingtons or Push Pull NFET+PFET with dead time control for both to avoid “shoot-thru” 


like you have now with all transistors biased On draining supply and not switching current from Rail to Motor.

then work backwards to see what signal can generate these 2 full-bridge signals or 4 half-bridge signals with dead-time.
now using a BJT Op Amp you can get high current (20mA) but lose 2V headroom from internal Darlington Push-pull or low current CMOS Rail-Rail Op Amp (1mA or a better one that can do 30V swing and 1% of your desired start current to motor (TBD). 
then consider the tradeoffs of drivers


dual Nch Half-Bridge , needs PWM on low side to boost charge pump voltage for high side NFET ( Common IC solution)

complementary Darlington or dual transistor equivalent to get 10% hFE max when saturated
FET Half Bridge IC or Full Bridge IC and Op Amp to suit interface.
then choose Vref on input to level shift input signal complementary to outputs.


BUT ALWAYS START WITH SPECS FOR EVERYTHING.