async def METHOD_NAME(self, interaction: discord.Interaction) -> None:
    await interaction.response.defer(thinking=True, ephemeral=True)
    team_name = str(self.children[0])
    scrim_id, num = self.selected_slot.split(":")
    num = int(num)
    team_name = "Team " + re.sub(r"team|name|[^\w\s]", "", team_name.lower()).strip().title()
    scrim = await Scrim.get_or_none(pk=scrim_id)
    if not scrim:
        return await interaction.followup.send("Scrim not found.", ephemeral=True)
    if await scrim.banned_teams.filter(user_id=interaction.user.id).exists():
        return await interaction.followup.send("You are banned from this scrim.", ephemeral=True)
    if not self.multiple_slots:
        if await scrim.assigned_slots.filter(user_id=interaction.user.id).exists():
            return await interaction.followup.send("You already have a slot in this scrim.", ephemeral=True)
    async with claim_lock:
        await scrim.refresh_from_db(("available_slots",))
        if num not in scrim.available_slots:
            return await interaction.followup.send("Somebody claimed this slot before you.", ephemeral=True)
        await Scrim.filter(pk=scrim_id).update(available_slots=ArrayRemove("available_slots", num))
        scrim.bot.loop.create_task(self.add_role(interaction.user, scrim.role_id))
        user_id = interaction.user.id
        _slot = await AssignedSlot.create(num=num, user_id=user_id, members=[user_id], team_name=team_name)
        await scrim.assigned_slots.add(_slot)
        scrim.bot.loop.create_task(self.proccess_claim(scrim, _slot))
        await interaction.followup.send(f"{emote.check} Slot claimed successfully.", ephemeral=True)