}
public GratuityTransaction processAmount(final Person responsiblePerson, final Money amount, final DateTime whenRegistered,
final PaymentType paymentType) {
final GratuityTransaction transaction =
new GratuityTransaction(amount.getAmount(), whenRegistered, paymentType, TransactionType.GRATUITY_ADHOC_PAYMENT,
responsiblePerson, getOrCreatePersonAccount(), this);
updateRemainingValue();
return transaction;