docs: @SneakyThrows
      protected Ticket decodeTicket(final Ticket result) {
          if (!isCipherExecutorEnabled()) {
              LOGGER.trace(MESSAGE);
              return result;
          }
          if (result == null) {
              LOGGER.warn("Ticket passed is null and cannot be decoded");
              return null;
          }
          if (!result.getClass().isAssignableFrom(EncodedTicket.class)) {
              LOGGER.warn("Ticket passed is not an encoded ticket type; rather it's a [{}], no decoding is necessary.", result.getClass().getSimpleName());
              return result;
          }
          LOGGER.debug("Attempting to decode [{}]", result);
          val encodedTicket = (EncodedTicket) result;
          val ticket = SerializationUtils.decodeAndDeserializeObject(encodedTicket.getEncodedTicket(), this.cipherExecutor, Ticket.class);
          LOGGER.debug("Decoded ticket to [{}]", ticket);
          return ticket;
      }