Перед тем как помочь с вашей ошибкой, хотелось бы поинтересоваться. Для чего вы создали 3 функции (для отрисовки клавиатуры), если уже существуют эти 3 функции (выше). Вы их дублируете просто, в чём смысл?
Также, для чего вы создали 3 обработчика одной и той же кнопки ("
monthly")
Ответ на ваш вопрос: Изначально вы выводите сообщение (функция "
process_premium"), в котором используется клавиатура, которая создаётся в функции "
premium_btn_monthly". При нажатие на кнопку "
weakly" вы редактируете сообщение и отдаёте всю ту же клавиатуру, что и в исходном сообщение.
Наверное это будет выглядеть так. Я не знаю вашу логику, поэтому могу только гадать:
@dp.callback_query_handler(lambda call: call.data == "weakly")
async def callback_buy(call: types.CallbackQuery):
await call.message.edit_reply_markup(reply_markup=premium_btn_weakly())
Читайте ошибку и свой код внимательно, в самой ошибке всё описано