посмотри на мою реализацию,  вызываю общий метод чек, используя принцип единой ответственности, но мне нужно вызывать check у клиента с параметром ucid, а у аккаунт и лимит с другими параметрами, как быть в таком случае?

public interface PartnersCheck {

    CheckResult check(String ucid);
    //Список типов переводов
    List<TransactionType> applicableTransactionTypes();

    int getOrder();

    record CheckResult(boolean success, String message) {

    }
}
@Service
public class CheckService {

    private final List<PartnersCheck> checkers;

    @PostConstruct
   public void init(){
       checkers.sort((e1, e2) -> e1.getOrder() < e2.getOrder() ? -1 : 1);
   }

    public CheckService(List<PartnersCheck> checkers) {
        this.checkers = checkers;
    }

    public PartnersCheck.CheckResult validateRequest(String ucid, TransactionType transactionType) {
        for (PartnersCheck checker : checkers) {
            if(checker.applicableTransactionTypes().contains(transactionType)) {
                PartnersCheck.CheckResult result = checker.check(ucid);
                if(!result.success()) {
                    return result;
                }
            }
        }
        return new PartnersCheck.CheckResult(true, "");


    }
}

@Component
@Slf4j
public class ClientAvailableCheck implements PartnersCheck {

    private final ClientService clientService;
    private final ErrorMessageService errorMessageService;

    public ClientAvailableCheck(ClientService clientService, ErrorMessageService errorMessageService) {
        this.clientService = clientService;
        this.errorMessageService = errorMessageService;
    }


    @Override
    public CheckResult check(String ucid) {
        Client client = clientService.findClient(ucid);
        if (client == null) {
            log.warn("[commonChecksResult] client == null");
            return new CheckResult(false, errorMessageService.getDescriptionCustomer(CLIENT_NOT_FOUND));
        }
        if (!ClientAccountService.ACTIVE.equals(client.getStatus())) {
            log.warn("[commonChecksResult] client is not active");
            return new CheckResult(false, errorMessageService.getDescriptionCustomer(CLIENT_BLOCKED));
        }
        return new CheckResult(true, " ");
    }

    @Override
    public List<TransactionType> applicableTransactionTypes() {
        return List.of(TransactionType.C2C, TransactionType.C2A);
    }

    @Override
    public int getOrder() {
        return 1;
    }
}

@Component
@Slf4j
public class AccountCheck implements PartnersCheck {

    private final ClientService clientService;
    private final ErrorMessageService errorMessageService;

    public AccountCheck(ClientService clientService, ErrorMessageService errorMessageService) {
        this.clientService = clientService;
        this.errorMessageService = errorMessageService;
    }

    @Override
    public CheckResult check(String ucid) {

        return null;
    }

    @Override
    public List<TransactionType> applicableTransactionTypes() {
        return List.of(TransactionType.C2C, TransactionType.C2A);
    }

    @Override
    public int getOrder() {
        return 2;
    }
}

@Component
@Slf4j
public class LimitCheck implements PartnersCheck {

    @Override
    public CheckResult check(String ucid) {
        return null;
    }

    @Override
    public List<TransactionType> applicableTransactionTypes() {
        return List.of(TransactionType.C2C, TransactionType.C2A);
    }

    @Override
    public int getOrder() {
        return 3;
    }
}