docs: def execute(self, request_object):
          """Generic executor method of all UseCases"""
  
          # If the request object is not valid then return a failure response
          if not request_object.is_valid:
              return ResponseFailure.build_from_invalid_request(
                  request_object)
  
          # Try to process the request and handle any errors encountered
          try:
              return self.process_request(request_object)
  
          except ValidationError as err:
              return ResponseFailure.build_unprocessable_error(err.normalized_messages)
  
          except ObjectNotFoundError:
              return ResponseFailure.build_not_found(
                  [{'identifier': 'Object with this ID does not exist.'}])
  
          except Exception as exc:
              logger.error(
                  f'{self.__class__.__name__} execution failed due to error {exc}',
                  exc_info=True)
              return ResponseFailure.build_system_error([{exc.__class__.__name__: exc}])