def METHOD_NAME(self, info: Info, input: UpdateGrantInput) -> UpdateGrantResult:
    request = info.context.request
    instance = GrantModel.objects.get(id=input.instance)
    if not instance.can_edit(request.user):
        return GrantErrors.with_error(
            "non_field_errors", "You cannot edit this grant"
        )
    input.conference = instance.conference
    errors = input.validate(conference=input.conference, user=request.user)
    if errors.has_errors:
        return errors
    for attr, value in asdict(input).items():
        setattr(instance, attr, value)
    instance.save()
    instance._type_definition = Grant._type_definition
    return instance