async def METHOD_NAME(self, ctx: commands.Context, case: Optional[int], *, METHOD_NAME: str):
    """Specify a reason for a modlog case.
    Please note that you can only edit cases you are
    the owner of unless you are a mod, admin or server owner.
    If no case number is specified, the latest case will be used.
    """
    author = ctx.author
    guild = ctx.guild
    if case is None:
        # get the latest case
        case_obj = await modlog.get_latest_case(guild, self.bot)
        if case_obj is None:
            await ctx.send(_("There are no modlog cases in this server."))
            return
    else:
        try:
            case_obj = await modlog.get_case(case, guild, self.bot)
        except RuntimeError:
            await ctx.send(_("That case does not exist!"))
            return
    is_guild_owner = author == guild.owner
    is_case_author = author == case_obj.moderator
    author_is_mod = await ctx.bot.is_mod(author)
    if not (is_guild_owner or is_case_author or author_is_mod):
        await ctx.send(_("You are not authorized to modify that case!"))
        return
    to_modify = {"reason": METHOD_NAME}
    if case_obj.moderator != author:
        to_modify["amended_by"] = author
    to_modify["modified_at"] = ctx.message.created_at.timestamp()
    await case_obj.edit(to_modify)
    await ctx.send(
        _("Reason for case #{num} has been updated.").format(num=case_obj.case_number)
    )