This is a problem with the font, compounded by a bad design decision forty years ago.
By default, when the document tries to use a character that the current font does not have, TeX replaces it with a blank space. You’re supposed to carefully proofread every line and catch this.
If you add the command \tracinglostchars=3, this will become an error, and the TeX engine will crash with the message:
! Missing character: There is no ̧ (U+0327) in font [lmroman10-regular]:mapping
=tex-text;.
I suggest you add \tracinglostchars=3 to all your documents. (I see that the default behavior is now to at least print a warning message to the console instead of failing silently, which used to require a different command.)
That tells us what the problem is: the default font that fontspec loads doesn’t have a combining cedilla accent. To fix this, load a font that does, such as New Computer Modern. The fontsetup package is the easiest way:
\documentclass{article}
\tracinglostchars=3
\usepackage[default]{fontsetup}
\begin{document}
Here is a c-cedilla: \c{c} and an o-cedilla: \c{o}
\end{document}

There is no precomposed o̧ in Unicode, although there is a ǫ (U+01EB), and Latin Modern has it. There is a good chance that you really want an ogonek, not a cedilla.
\documentclass{article}
\usepackage{fontspec}
\DeclareRobustCommand\oogonek{\symbol{"01EB}}
\begin{document}
Here is a c-cedilla: \c{c} and an o-ogonek: \oogonek
\end{document}
This was meant more as an example, but: David Carlisle points out that \k{o} works for ǫ. So would entering the precomposed UTF-8 character into your source file directly.
Missing character: There is no ̧ (U+0327) in font [lmroman10regular]:mapping=tex-text;!– David Carlisle Aug 19 '23 at 12:59