Off the top of my head, I'd think of two approaches.
1. Your Payment table would include payments due as well as payments made. It would have an amount due field and at least a flag indicating whether the payment was made. On a regular basis, at least monthly, you would run a routine to create new, unpaid amount records in Payments (you'd need a way to determine whether an unpaid amount record should be created for each Student, such as according to last billing cycle or calculating remaining balance, etc.).
2. Without creating unpaid amount records in Payments, you might be able to have calculations that flag a Student as owing for the current month, based on their current balance and the date of their last payment (i.e., if they paid more than a month ago and they have a balance, then they do owe a payment this month).
Depending on your business rules (of which we know practically nothing), you could either:
1. Generate the payments records in advance, then record the actual payment by entering the date and the amount paid in an already existing record; or:
2. Calculate the amount that should have been paid up to today and compare it with the sum of Payments.