protected static function handleGETById(
        $parameters,
        $id,
        $modelClass,
        $primaryDataParameters = [],
        $relationshipParameters = []
    ) {
        $filterValidationModel = $modelClass::getFilterValidationModel();

        $idAttribute = $modelClass::getIdAttribute();

        //Filter id attribute value
        if (!empty($filterValidationModel) && isset($filterValidationModel->{$idAttribute})) {
            $id = $filterValidationModel->{$idAttribute}->parse($id);
        }

        $fields = $modelClass::parseFields($parameters);

        $requestInclude = static::getRequestInclude($parameters, $modelClass);

        $data = $modelClass::getById(
            $id,
            $fields,
            ...$primaryDataParameters
        );

        //Check if resource exists
        static::exists($data);

        $includedData = $modelClass::getIncludedData(
            $data,
            $requestInclude,
            $fields,
            $relationshipParameters
        );

        return static::viewData(
            $data,
            (object) [
                'self' => $modelClass::getSelfLink($id)
            ],
            null,
            (empty($requestInclude) ? null : $includedData)
        );
    }