Во первых ваш event в когах, по этому нужно ставить self. Исправил ваш код, попробуйте.
должно работать.
@commands.Cog.listener()
async def on_member_update(self, member, before, after):
if before.roles != after.roles:
channel = self.bot.get_channel(930793530102779974)
emb = discord.Embed(description = f'**Обновление ролей - {before.mention}**', colour = discord.Color.red())
emb.add_field(name = '**Роли до**', value = ", ".join([r.mention for r in before.roles]))
emb.add_field(name = '**Роли после**', value = ", ".join([r.mention for r in after.roles]))
async for event in before.guild.audit_logs(limit = 1, action = discord.AuditLogAction.member_role_update):
if getattr(event.target, "id", None) != before.id:
continue
print(after.roles, event.user)
emb.add_field(name = "Изменённые рои", value = ",".join([getattr(r, "mention", r.id) for r in event.before.roles or event.after.roles]))
emb.add_field(name = "Модератор", value = event.user)
break
await channel.send(embed = emb)