Ports typically means "i use git to create a source tree in /usr/ports and then do a make && make install". so Build from source.
pkg by default pulls binary packages from official FreeBSD repos.
Can you mix them? Sure but you may have problems unless you do things like lock something
I don't know the current wisdom on using "portupgrade" but it may (again I don't know for sure) be discouraged.
Ports source is now basically a git tree, so git clone, git pull, make install instead of portupgrade.
It's been a long time since I've built stuff from source, so I could be wrong