public function findByPK($arguments)
    {
        $arguments = (array) $arguments;

        $args = [
            'primaryKey' => $this->getKeyName(),
            'args'       => $arguments,
        ];

        $fetch = $this->queryBuilder()->find('find', $args);

        if ($fetch instanceof Collection && empty($fetch->asArray())) {
            return $this->returnEmptyObject();
        }

        $this->setId($this->getKeyName(), array_shift($arguments));
        $this->{$this->getKeyName()} = $fetch[0]->{$this->getKeyName()};

        foreach ($fetch[0]->getAttributes() as $key => $value) {
            $this->{$key} = $value;
        }

        $this->assignPropertiesToModel($this->attributes);

        return $this;
    }