Crush player with moving wall

I have a player (Ball) and a moveable cube. If i push the player into a wall with the cube I want the player to get crushed.
I also don’t want a menu if the player dies. I want the whole scene to immediately reset as soon as the player dies.
this is my script for the player:`

using UnityEngine;

public class MoveWithForceWASD : MonoBehaviour
{
    private Rigidbody _rigidbody;

    [SerializeField] private float _movementForce = 10f;

    private void Awake() => _rigidbody = GetComponent<Rigidbody>();

    private void FixedUpdate()
    {
        if (Input.GetKey(KeyCode.W))
            _rigidbody.AddForce(_movementForce * Vector3.forward);

        if (Input.GetKey(KeyCode.S))
            _rigidbody.AddForce(_movementForce * Vector3.back);

        if (Input.GetKey(KeyCode.D))
            _rigidbody.AddForce(_movementForce * Vector3.right);

        if (Input.GetKey(KeyCode.A))
            _rigidbody.AddForce(_movementForce * Vector3.left);
    }      
}

and this here is my script for tha moveable cube:

using UnityEngine;
public class TestScriptFromUnityAnswers2 : MonoBehaviour
{
    private Rigidbody _rigidbody;
    public bool _canChangeDirection;
    private Vector3 _direction;
    [SerializeField] private float _movementForce = 10f;

    public void Awake()
    {
        _rigidbody = GetComponent<Rigidbody>();
        _canChangeDirection = true;
    }

    private void Update()
    {
        if (_canChangeDirection)
        {
            if (Input.GetKeyDown(KeyCode.UpArrow))
                SetForceDirection(Vector3.forward);

            if (Input.GetKeyDown(KeyCode.DownArrow))
                SetForceDirection(Vector3.back);

            if (Input.GetKeyDown(KeyCode.RightArrow))
                SetForceDirection(Vector3.right);

            if (Input.GetKeyDown(KeyCode.LeftArrow))
                SetForceDirection(Vector3.left);
        }
    }

    private void FixedUpdate()
    {
        if (_direction.sqrMagnitude > 0.01f)
            _rigidbody.AddForce(_movementForce * _direction);
    }

    private void SetForceDirection(Vector3 direction)
    {
        _direction = direction;
        _canChangeDirection = false;
    }

    void OnCollisionEnter(Collision col)
    {
        if (col.gameObject.name == "Wall")
        {
            _canChangeDirection = true;
            _direction = Vector3.zero;
        }
    }
}

You can do something like this:

private bool isCollidedWithWall = false;
private bool isCollidedWithCube = false;

public void OnCollisionEnter(Collision collision)
{
    if (collision.gameObject.name == "wall")
        isCollidedWithWall = true;
    else if (collision.gameObject.name == "cube")
        isCollidedWithCube = true;

    if (isCollidedWithWall && isCollidedWithCube )
        Destroy(gameObject);
       //restart game
}

public void OnCollisionExit(Collision collision)
{
    if (collision.gameObject.name == "wall")
        isCollidedWithWall = false;
    else if (collision.gameObject.name == "cube")
        isCollidedWithCube = false;
}

That will detect if you player has collided with both wall and cube… and in that case you can destroy object or reset game or whatever you like.