Make a "Balloon" that floats upwards but slows as it gets higher

Hi! I have figured out most of this problem already but here is what I am trying to do:
I am trying to make a balloon which goes upwards (Using rigidbodies) and when it reaches a certain altitude it hovers there because the “Atmosphere” is really thin so it cannot go any higher. Is there a way I can do this? I have already figured out the going upwards part. I just need like a formula for that. I have tried this: upwards force = upward / transform.position.y where upward is a variable for how fast it goes. Unfortunately I am not able to get it to hover nicely at one altitude depending on how high you go. Thanks for any help in advance!

@VortexGamer Hey! If you want to use rigidbodies to make a balloon that floats, you can make the drag very high, so if you stop putting force on the balloon, (when it won’t go any higher), it will stop almost instantly.

As for the formula, I would pick a max height, and in this example I’m gonna say it’s 100.

int maxHeight = 100;
GameObject balloon; //the balloon

if(balloon.position.y <= 25)
{
    speed = 5;
}

if(balloon.position.y > 25 && balloon.position.y <= 50 )
{
    speed = 3;
}

if(balloon.position.y > 51 && balloon.position.y <= 75)
{
    speed = 2;
}

if(balloon.position.y > 95 && balloon.position.y <= 100)
{
    speed = 0;
}

if(balloon.position.y < 101)
{
    speed = -0.5;
}