My advice is get rid of all sleep props. You don't want DC to be reliant on anything to get to sleep, cuddles, milk, music, white noise. Otherwise DC will continue to cry out for you to provide that thing every time they wake up.
Make it as dark as possible. No night light.
DC in his cot in his own room, doors closed. If he wakes up but not distressed, don't go in. If he is distressed, check he doesn't have a poo, then repeat your chosen phrase: sleepy time/time to sleep or whatever.
Then go out and close the door. Set a timer and time how long he cries. It feels like forever when you are listening to it but may not be as long as you think before he goes back to sleep.
We had a sleep consultant who urged us not to go in as this would "reset" her and make the crying longer in duration. So stay out, if you can, and just commit to giving this a go for 2 or 3 nights.
Rinse and repeat every time he wakes.
On the first night of doing this, my DC went down to 2 awakenings. Sleeping 12 hours solid after 5 nights. Worst episode of crying was maybe 50 mins, but that was only once. By the end of the 5 nights it was 2-3 mins crying when put down. And afterwards she went to no crying at all, just happy babbling when you put her down in the cot.
He likes being in your bed. He is going to complain when he doesn't get into your bed. There is going to be some crying as that's his only way to complain. That doesn't mean you're doing the wrong thing.