Объясни функциональность и область применения метода `copy()` в Kotlin data classes, и опиши, как он позволяет создавать модифицированные экземпляры, сохраняя неизменные свойства. — ДейлиПреп