Start here. This is the direct spoken answer to practice first.
Why this question matters
A useful object owns a coherent concept and the behavior needed to keep that concept valid. Object-oriented design is not the exercise of turning every noun in a requirement into a class.
I start with behavior and rules: what decisions must the software make, and which state must stay consistent while making them? An Order can own valid order transitions, while Money can own amount and currency rules. A request DTO may only carry data and does not need domain behavior. I keep responsibilities together when they change for the same reason.