Now, imagine that you have that in 20 places in your code, but in the
manager class, someone changes name to full_name.
That is a problem with changing a "published" (as opposed to merely public)
interface. Your solution is really no solution at all, it just moves the
problem: now we have twenty calls to $office->manager_name,
and someone changes the office class and renames that method. If something
returns an object, you need to feel free to call that object's methods ...
otherwise, what is the point of returning the object in the first place?