is it possible to make a non kinematic object using gravity change to kinematic when it hits a trigger?

Ill try to explain as best as possible here. I have a non kinematic “cube” object that uses gravity so i can pick it up and throw it. I need it to become kinematic once it hits an “invisible platform” so the player can walk on it. Can this be achieved? if so could someone please explain to me how to do this?

Could you detect when the cube has hit the “invisible platform” then use rigidbody.isKinematic to disable or enable the gravity. Or you could set the rigidbody on the cube to freeze with:

gameObject.GetComponent.<Rigidbody>().constraints = RigidbodyConstraints.FreezeAll;

I have no idea which way would be more efficient.

To detect the collision you’d need the objects to have Box Colliders and then use OnCollisionEnter.