public function findOne($conditions = [], $order = null)
    {
        // Event
        $this->triggerEvent(
            'onBefore' . ucfirst(__FUNCTION__),
            [
                'conditions' => &$conditions,
                'order' => &$order,
            ]
        );

        $dataset = $this->find($conditions, $order, 0, 1);

        $result = $dataset[0];

        if (!$result) {
            $class = $this->dataClass;
            $result = new $class();
        }

        // Event
        $this->triggerEvent(
            'onAfter' . ucfirst(__FUNCTION__),
            [
                'result' => &$result,
            ]
        );

        return $result;
    }