I've been trying to code a grab component where objects can be picked up on used and carried in a similar manner to REPO. It should reference an empty object child of the camera and apply a force on the rigidbody towards that position. But the cube just remains still. Am I doing anything wrong in applying the force on the rigidbody component? Code below.

public sealed class Grabbable : Component, Component.IPressable
{
    private GameObject transformObject;
    private PlayerGrabObject grabObjectData;
    private Rigidbody rigidbody;
    private bool held = false;
    
    // Grabs camera, empty child of camera, and PlayerGrabObject component
    protected override void OnStart()
    {
        CameraComponent camera = Scene.GetAllComponents<CameraComponent>().FirstOrDefault( x => x.IsMainCamera );
        GameObject cameraGameObject = camera.GameObject;
        transformObject = cameraGameObject.Children.FirstOrDefault( c => c.Name == "Hold Position");

        rigidbody = this.GetComponent<Rigidbody>();

        grabObjectData = transformObject.GetComponent<PlayerGrabObject>();
    }

    // Called in OnFixedUpdate while pressed is true
    private void moveToTransform()
    {
        if (WorldPosition == transformObject.WorldPosition) return;
        
        Vector3 direction = getDirection(WorldPosition, transformObject.WorldPosition);
        rigidbody.ApplyImpulse(direction * grabObjectData.objectMoveForce );
    }
}