The docs says:
Payable methods. We can allow methods to accept token transfer together with the function call. This is done so that contracts can define