When doing method chaining, you have methods that return the object allowing you to continue the chain. However, you need to get values out of the object somehow.
Usually I've added a method that returns a value at the end, but this complicates matters if you add to the chain and that return method may not be valid anymore.
The way I view it each time you add a method onto a chain you are refining your result until you get your desired answer in the last method call. Having a final output method creates a restriction in that it needs to know about the last operation to know how to display the result.
Maybe you have a method that results in a string and one that results in an array your output method has to deal with both those cases. What if you add a method that stores your string result somewhere new? Now you have to update the output method to handle that case too.
Is there a way of letting a method know it's the last in the chain so should output its result?