What is wrong with my bomb script?

I have tried a lot of different options to try and get my bomb throw to work. I mean it does work but on player move my bomb throws incorrectly. I have gone through quite a bit to figure it out such as using velocity rather than Addforce but nothing seems to help. So I was hoping maybe someone had a suggestion. So the problem just to clarify is that if I move backward the bomb throws forward and if I move forward the bombs throw backwards. The rotation seems correct. This is in c#. Thank you for any reply.

 //Bomb script:
 
 void BombThrow() {
     GameObject bomb = Instantiate(ExplosiveDevice, transform.position, transform.rotation);
 
     Rigidbody rb = bomb.GetComponent();
 
     rb.AddForce(bomb.transform.forward * bombLaunchSpeed);
 }
 
 //Movement Script (This is a seperate Script from my bomb script):
 
 public float movementSpeed = 8.0f;
 public float rotateSpeed = 5.0f;
 void Update()
 {
     float x = Input.GetAxis("Horizontal") * Time.deltaTime * rotateSpeed;
     float z = Input.GetAxis("Vertical") * Time.deltaTime * movementSpeed;
 
     transform.Rotate(0, x, 0);
     transform.Translate(0, 0, z);
 }

Here is a video of my problem:

-KittenSnipes

Might be because your bomb forward direction is facing down, suggest you can try create another empty game object and adjust the rotation of the empty game object to the direction you wish to launch shot at, then pass the forward direction to the add force function

rb.AddForce(shotDirection.transform.forward * bombLaunchSpeed);

or maybe you can try to increase the value for the bombLaunchSpeed

Well I found an answer after so long searching. This line of code works much better:

rb.velocity = launchPosition.TransformDirection(-Vector3.forward * bombLaunchSpeed);

Thank you to @TeohRIK for being considerate enough to try and help me.
Be wary though because if your launch speed is not high enough that it may seem as if the bomb is launching in the wrong direction but it is not.