Player will not move with platform

Im working on a game kind of like clustertruck and whenever I move the ground, even with a box collider the player still goes through the ground and so does the train hes standing on (yes this game is about trains and guns plz dont judge). I have code that lets the ground/train move, and I move the train because it works better. My only problem is the player doesnt stay on the train even with this code:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Moving : MonoBehaviour
{
    public GameObject Player; // referencing the player

    private void OnTriggerEnter(Collider other)
    {
        if (other.gameObject == Player)
        {
            Player.transform.SetParent(transform); //setting player parent to the train 
        }
    }

    private void OnTriggerExit(Collider other)
    {
        if (other.gameObject == Player)
        {
            Player.transform.SetParent(null); //removing its parent
            Player.transform.localScale = new Vector3(1, 1, 1); //resetting the player's scale
        }
    }
}

then here is my code to move the train or ground:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class AddConstantVelocity : MonoBehaviour
{
    [SerializeField] Vector3 v3Force;

    void Update()
    {
        GetComponent<Rigidbody>().velocity += v3Force;
    }
}

the player does become a child of the train but it doesnt follow

Hello. The player needs a rigidbody to move. Im not sure how I should fix this. Is there a way to get the player to move with the train even if it has a rigidbody?