How to scan for all PDF files in C: and copy to OneDrive folder

I want to use PowerShell to scan C: for PDF files excluding the C:Windows and C:Program Files folders and copy them to my OneDrive folder.

Here is what I have so far. It copies ONLY 1 PDF to OneDrive folder of the logged-in Windows user and ignores all the others listed in folders and sub-folders. I spent hours on this but to no avail. What’s wrong with this code?

Also the exclude doesn’t seem to work.

$source = 'c:*'
$dest = 'C:Users$Env:UserNameOneDrivepdf'

$exclude ="windows", "temp", "Program Files","Program Files (x86)"

Get-ChildItem $source -Recurse -Exclude $exclude -Filter "*.pdf" | Copy-Item -Destination {Join-Path $dest $_.FullName.Substring($source.length)}