Cop (assuming you meet the opinion and allure requirements):
Be at the police station, in the lobby, at 22:00. If it's not a party night, there's a chance Violet will come out and offer you a ride home. If you have the alt room and there's no one there, she'll get frisky.
You can also do the graffiti incidents. Choose to text the cops, then get arrested. Don't call mom. It's still random, but the cop will show up and grind her ass against those unsanitary jail bars while a certain lesbian cop watches. Violet is kind of a freak with zero concern for cleanliness.
Lawyer (assuming you meet the opinion, allure and professional requirements):
After the 4th regular meeting, Go to the law office on the weekends after 10AM. She'll ask you in. Repeat that every Sat and Sun and she'll start doing activities with you. Repeat it till you've had at least 2 hand jobs and have gone down on her at least 4 times. The next visit, ask for a hand job and then ask her to be your girlfriend. You're also gonna want to continue to visit her after 2100 at her apartment. Eventually, she'll let you sleep on the couch and then she'll start to leave her door open. Once you've got that "girlfriend" status, you can ask to go raw and she won't just kick you out.
FYI: You could use cheat methods to artificially boost activity counts, but it's pretty easy to screw things up doing that, not to mention that the cheat mod that lets you pause time and manually call random events was created by a moron. Some of the tests in the game are for direct equality (==), so if you raise the count above the value it tests for before the test occurs, it will always fail. For instance, the test that makes the lawyer your girlfriend checks that the blowjob count == 0 not >= 0. Plus that bit of code is only accessed when you're exiting the law firm on a weekend after a hand job.