In my games the DM calls for a check. The player describes their intentions and then the DM calls for a check when appropriate. So if someone gives really good reasoning for an NPC to act a certain way, there might not be a persuasion roll, if the character says something dumb then the roll DC might increase. The point is, no one is allowed to say “i roll persuasion to get them to do X”
Yeah. I like giving advantage/disadvantage because it tells the player: your roleplay positively/negatively impacted the outcome. Luckily i am blessed with good players that will play their characters even if it means a less than ideal outcome.