def METHOD_NAME(self, request, *args, **kwargs):
    partial = kwargs.pop("partial", False)
    user = self.get_object()
    serializer = self.get_serializer(user, data=request.data, partial=partial)
    serializer.is_valid(raise_exception=True)
    is_abakus_member = serializer.validated_data.pop("is_abakus_member", None)
    with transaction.atomic():
        super().perform_update(serializer)
        if is_abakus_member is None or is_abakus_member == user.is_abakus_member:
            return Response(data=serializer.data, status=status.HTTP_200_OK)
        if not user.is_verified_student():
            raise ValidationError(
                detail="You have to be a verified student to perform this action"
            )
        abakus_group = AbakusGroup.objects.get(name=constants.MEMBER_GROUP)
        if is_abakus_member:
            abakus_group.add_user(user)
        else:
            abakus_group.remove_user(user)
    payload = serializer.data
    payload["is_abakus_member"] = is_abakus_member
    return Response(data=payload, status=status.HTTP_200_OK)