как сделать Многоуровневая реферальная система с начислением ? Laravel

Делать начисление от рефералов

с 1-й линии 1%,
2-я линия 0.5%,
3-я линия 0.25%

user_id = id того кто пригласил эту реализация готова (когда пользователь регистрируется по ссылке в user_id ставится id того кто его пригласил)

Таблица users:

id   user_id    name    balance
1    null       Jon     100
2    1          Mike    50
3    2          Robbi   300
4    3          Sonny   2000

Вопрос: как грамотно начислять проценты когда к примеру пользователь пополнил счет?

к примеру, пользователь "Sonny" регистрируется по ссылке "Robbi" соответственно получает "родительский user_id = 3" теперь когда "Sonny" пополняет счет на 2000 тогда "Sonny" является 1 уровнем для "Robbi" , 2 уровнем для "Mike" 3 уровнем для "Jon" то

"Robbi" должен получить с 1-й линии 1%, 2000/100 * 1 = 20$
"Mike" должен получить с 2-й линии 0,5%, 2000/100 * 0.5 = 10$
"Jon" должен получить с 3-й линии 0,25%, 2000/100 * 0.25 = 5$

Связь один ко многим у User может быть много users

class User{
    /**
     * Return users
     * 
     * @return HasMany
     */
    public function users(): HasMany
    {
        return $this->hasMany(User::class);
    }
}

Ответы (0 шт):